我是Clojure的新手,并且在运行单元测试时遇到了一些麻烦。
(ns com.bluepojo.scratch
(:require clojure.test))
(defn add-one
([x] (+ x 1))
)
(is (= (add-one 3) 4))
给出:
java.lang.Exception: Unable to resolve symbol: is in this context
我想念什么?
更新:
这有效:
(clojure.test/is (= (add-one 3) 4))
我如何做到这一点,这样就不必在is之前声明clojure.test?
最佳答案
您对ns宏的使用不太正确,并且有几种方法可以修复它。我建议之一
1.将别名clojure.test
缩短一些
(ns com.bluepojo.scratch
(:require [clojure.test :as test))
(defn add-one
([x] (+ x 1)))
(test/is (= (add-one 3) 4))
2.使用
use
(ns com.bluepojo.scratch
(:use [clojure.test :only [is]]))
(defn add-one
([x] (+ x 1)))
(is (= (add-one 3) 4))
看一看this article,这在一定程度上解释了这一点
关于unit-testing - 无法解析符号: is in this context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4457321/