我不熟悉在 Clojure 中模拟是如何工作的。具体来说,我不确定应该如何测试实现 sqlKorma 查询或调用数据库的函数?理想情况下,我希望能够在我的测试中模拟 sqlKorma。
(defn fetch [id]
(->
(korma/select* :my-table)
(korma/where {:id id})
(korma/exec)))
(defn retrieve [id]
(->
(fetch id)
(ring/response)))
我正在使用 Speclj 来测试我的应用程序。
(describe "item"
(it "is fetched"
(let [fetched (fetch :test-case)] ;here I want to be able to mock sqlKorma and return an array of 1.
(should= (count fetch) 1)))
(it "is retrieved"
(let [retrieved (retrieve :test-case)]
(should= (get retrieved :status) 200))))