9

私は 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 を宣言する必要がないようにするにはどうすればよいですか?

4

2 に答える 2

13

あなたの ns マクロの使い方はあまり正しくなく、それを修正するためのいくつかのオプションがあります。私はのいずれかをお勧めします

clojure.test1.より短いものへのエイリアス

(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))

これをある程度詳しく説明しているこの記事を見てください

于 2010-12-16T04:37:34.893 に答える
4

使用するだけrequirerefer

(ns com.bluepojo.scratch
  (:require [clojure.test :refer :all))

次に、単に

(is (= (add-one 3) 4))
(are ...)

:refer名前空間から参照するシンボルのリストも取得します (例: :refer [is are])。

于 2014-12-28T17:44:37.180 に答える