1

当我通过 Clojure 模式在 Spacemacs 中运行测试时,<SPC> m t t它不会显示失败,即使测试明显失败。看:

测试没有失败

1 不等于 2,但仍然有 0 次测试失败。

我怎样才能使测试失败?

4

1 回答 1

5

您的测试中有一个问题:它缺少比较运算符。正确的版本是:

(deftest test-exercise-1-4
  (testing "count-anywhere"
    (is (= 2 1))))

is宏具有以下定义(为简洁起见,编辑源代码):

(defmacro is
  "Generic assertion macro.  'form' is any predicate test.
  'msg' is an optional message to attach to the assertion.

  Example: (is (= 4 (+ 2 2)) \"Two plus two should be 4\")

  ([form] `(is ~form nil))
  ([form msg] `(try-expr ~msg ~form)))

正如您所看到的,(is 2 1)您正在调用第二个参数 where formis2和断言消息 is 1。事实上2,它使断言通过:

(is 2)
;; => 2

(is false)

FAIL in () (boot.user5045373352931487641.clj:1)
expected: false
  actual: false
;; => false
于 2016-08-10T04:06:59.887 回答