2014-11-25 85 views
1

我已經使用lein命令創建了一個項目。 這是我的源文件:無法獲取宏的值

(ns database.core) 
(defn movies[na rent qty] 
    (spit "e.txt" (.toString [{:na na :rent rent :qty qty}])) 
    (read-string (slurp "e.txt"))) 

這是我的項目文件:

(ns database.core-test 
    (:require [clojure.test :refer :all] 
      [database.core :refer :all])) 

(deftest movies-test 
    testing "movies" 
    (let [jun (movies "Dark-knight" 12 6)] 
    (is (= (get-in jun [0 :na]) "Dark-knight")) 
    (is (= (get-in jun [0 :rent]) 12)) 
    (is (= (get-in jun [0 :qty]) 6)))) 

但是當我嘗試運行它,我不斷收到此錯誤。 clojure.lang.Compiler $ CompilerException:了java.lang.RuntimeException:無法採取宏觀的值:#'clojure.test /測試,編譯:(C:\用戶\ A \數據庫\測試\數據庫\ core_test。 clj:5:1)

這個錯誤可能是什麼原因造成的?

回答

4

testing宏必須用自己的對括號,以便它被調用

(deftest movies-test 
    (testing "movies" 
    (let [jun (movies "Dark-knight" 12 6)] 
     (is (= (get-in jun [0 :na]) "Dark-knight")) 
     (is (= (get-in jun [0 :rent]) 12)) 
     (is (= (get-in jun [0 :qty]) 6)))))