clojure - 测试返回 bool 值的函数

标签 clojure

对于 Clojure 新手来说,我可能最简单的测试失败了,并出现了一条相当令人困惑的消息。

(ns leiningen.booltest
  (:use clojure.test))

(with-test
  (defn bool-function [] 
    (true))

  (is (= (bool-function) true))
)

ERROR in (bool-function) (booltest.clj:10)
expected: (= (bool-function) true)
  actual: java.lang.ClassCastException: java.lang.Boolean cannot be cast to clojure.lang.IFn

最佳答案

您正在将 true 作为函数调用:with-test 表达式第 3 行的 (true)。它应该只是 true,不带括号。

您可以进一步简化表达式,因为 bool-function 已经返回 true:

 (with-test
      (defn bool-function [] 
        true)
      (is (bool-function)))

关于clojure - 测试返回 bool 值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025490/

相关文章:

clojure - 在 Clojure 中验证 compojure 请求时解析字符串中的整数

clojure 递归重构代码

web - Clojure 网站到 html 和 javascript?

clojure - 在另一个 map 中解构一个 map ?

clojure - 在 Clojure 中将字符串转换为日期

clojure - 映射中键和值的顺序

java - 在 Clojure 命名空间中排除 java.lang.*

clojure - 对于 Clojure,是否有更好的 'coll' 和 'n' 位置的编码约定?

lisp - 同质性,它是如何工作的?

shell - Clojure 中最常见的 shell 脚本编写方式是什么?