私が書いているアプリケーションの主な目的ではないので、RabbitMQ インタラクションをスタブ化しようとしています。
そのため、テストで langohr 関数を次のように再バインドしてみました。
(defn stub [ch]
(langohr.basic/ack ch 1))
(deftest test-stub
(with-redefs [langohr.basic/ack (fn [a1 a2] true)]
(is (= true (stub "dummy")))))
でテストを実行するとlein test
、
java.lang.ClassCastException:
redwood.env_test$fn__2210$fn__2211 cannot be cast to clojure.lang.IFn$OLO
私は、さまざまなテストフレームワークを含む他のいくつかの方法を試して、langohr lib関数を再定義または再バインドしましたが、進歩はありませんでした。
私は他のシナリオをテストし、上記のコード構造で cheshire (json parsing clojure lib) 関数のスタブ化に成功しました。私のランゴールスタブが機能しない理由を理解し、エレガントな方法でこれを行う方法についてのヒントを求めて、謙虚に支援を求めます。