2010-12-16 14 views
8

私は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を宣言する必要がないように

(clojure.test/is (= (add-one 3) 4)) 

がどのように私はそれを作るのですか?

答えて

12

あなたのnsマクロの使用はあまり正確ではなく、いくつかの修正オプションがあります。私はいくつかの長さでこれを説明しているthis articleで短い何か

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

を見てみましょうにエイリアスclojure.test

1の1を示唆している

+0

恐縮です、ありがとう! –

+2

':require'のsexpに'] 'がありません。' use'は ':refer'で' require'の代わりに廃止されました。 – Zaz

3

だけrequirerefer

単にそして
(ns com.bluepojo.scratch 
    (:require [clojure.test :refer :all)) 

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

:referはまた、名前空間(例えばから参照するためにシンボルのリストを取り:refer [is are])。

関連する問題