小编eff*_*eff的帖子

Clojure数据库单元测试/模拟

我刚刚开始研究数据库密集的Clojure应用程序,并尝试进行一些单元测试.理想情况下,我想通过嘲笑事实来避免实际打到真正的数据库.

这是一个简单测试的例子:

测试core.clj

(deftest core-test
  (is (> (count (fn-under-test "foo")) 0)))
Run Code Online (Sandbox Code Playgroud)

core.clj

(defn fn-under-test [slug]
  (db/query "select * from %1" slug))
Run Code Online (Sandbox Code Playgroud)

db.clj

(defn query [q & args]
  (sql/with-connection db
    (sql/with-query-results res
      [(clause q args)]
      (doall res))))
Run Code Online (Sandbox Code Playgroud)

我的问题:有没有办法从test-core.clj中将自定义函数绑定到'db/query',这样core.clj就会使用它,而不是db.clj中的定义?

谢谢!

database testing clojure mocking

12
推荐指数
1
解决办法
2720
查看次数

标签 统计

clojure ×1

database ×1

mocking ×1

testing ×1