【发布时间】:2011-07-22 21:49:44
【问题描述】:
我最近刚开始研究一个数据库密集型 Clojure 应用程序,并试图进行一些单元测试。理想情况下,我想通过模拟一些东西来避免实际访问真正的数据库。
这是一个简单测试的例子:
test-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 中的定义?
谢谢!
【问题讨论】:
标签: database testing clojure mocking