2014-11-25 6 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/testing, компиляция: (C: \ Users \ A \ database \ test \ database \ 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))))) 
Смежные вопросы