我试图将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")))))
Run Code Online (Sandbox Code Playgroud)
当我运行测试时lein test,我得到了一个
java.lang.ClassCastException:
redwood.env_test$fn__2210$fn__2211 cannot be cast to clojure.lang.IFn$OLO
Run Code Online (Sandbox Code Playgroud)
我一直在尝试其他几种方法,包括不同的测试框架来重新定义或重新绑定langohr lib函数而没有任何进展.
我已经测试了其他场景,并且我已经使用上面的代码结构成功地将cheshire(json解析clojure lib)函数存根.我谦恭地理解为什么我的langohr存根不工作以及我如何能在一个优雅的方式做到这一点的提示请求援助.