12
最近、データベースの重いClojureアプリケーションの作業を開始し、ユニットテストを実施しようとしています。理想的には、私は実際に物事を嘲笑して実際のデータベースを打つことを避けたいと思います。Clojureデータベースユニットのテスト/黙示
ここでは簡単なテストの例です:
(defn query [q & args]
(sql/with-connection db
(sql/with-query-results res
[(clause q args)]
(doall res))))
私の質問db.clj
テスト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内の定義とは対照的に、core.cljが使用するように、カスタム関数を 'db/query'にバインドするにはtest-core.cljを使用しますか?
ありがとうございます!
ありがとうございます!私は今日のバインディング(とバインディング)を使用しようとしましたが、それをやり遂げることができませんでした - スレッド "メイン" java.lang.Exceptionで_Exceptionを取得し続けています:var:db/query in thisを解決できませんコンテキスト_。 – eff
テストでdb.cljを要求してから、バインディングを使用してみることができます。 – Jeff
パーフェクト! :すべてが解決されたdbが必要です。ありがとう、トン! – eff