                      {:type :fail, :message ~msg,
                       :expected '~form, :actual (class object#)}))]
        (if (:return env'#)
-         env'#
+         (assoc env'# :last-value result#)
          result#))))
 
 (defmethod assert-expr 'thrown? [env menv msg form]

(defmacro testing
  "Adds a new string to the list of testing contexts.  May be nested,
  but must occur inside a test function (deftest)."
  [env string & body]
  `(fn [env#]
     (reduce #(%2 %1)
       (update-in env# [:testing-contexts] conj ~string)
       [~@body])))

;; =============================================================================
;; Defining Tests

                   {:type :fail, :message ~msg,
                    :expected '~form, :actual value#}))]
     (if (:return env'#)
       (assoc env'# :last-value value#)
       value#)))

;; =============================================================================
