12
我剛剛開始研究數據庫繁重的Clojure應用程序,並試圖獲得一些單元測試。理想情況下,我想通過嘲笑事情來避免實際觸及真正的數據庫。Clojure數據庫單元測試/嘲諷
這裏有一個簡單的測試示例:
測試core.clj
(deftest core-test
(is (> (count (fn-under-test "foo")) 0)))
core.clj
(defn fn-under-test [slug]
(db/query "select * from %1" slug))
db.clj
(defn query [q & args]
(sql/with-connection db
(sql/with-query-results res
[(clause q args)]
(doall res))))
我的問題:有沒有辦法,從內部test-core.clj,將自定義函數綁定到'db/query',使得core.clj將使用它,而不是db.clj中的定義?
謝謝!
謝謝!我今天早些時候嘗試使用綁定(和綁定),但不能讓它離開 - 我一直在線程「main」中得到_Exception java.lang.Exception:無法解析此中的var:db/query context_。 – eff
你可以嘗試在你的測試中需要db.clj,然後使用綁定。 – Jeff
完美! :需要db解決了一切。萬分感謝! – eff