在一个小的重构模式中,我有一堆测试有两倍的方法调用,例如:
connection = double("api_connection", create_thing: double("thing"))
在此示例中,调用connection.create_thing会按预期返回thing
double。
但是,我现在更改了代码,以便实际代码运行如下:
connection.send(:create_thing)
这导致了一系列错误:
Double "api_connection" received unexpected message :call with (:create_thing)
由于这是一个重构,我很谨慎地修复测试双打来响应调用。有没有办法设置这些双打接受:call
,就像他们接受传递给:call
的任何方法一样?
答案 0 :(得分:0)
嗯,结果是 PEBCAK 错误。
:call
不是ruby对象方法 - 我打算使用的是:send
。用我:sends
的{{1}}替换我的代码,导致一切正常。
好事我没有尝试'修复'测试 - 他们正确地失败了。