我刚刚开始研究一个数据库重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中的定义?
谢谢!