传递给RSpec的double方法的参数是什么?

时间:2018-10-22 06:19:12

标签: ruby testing rspec mocking

在RSpec中创建测试Double时,我可以选择传入一个似乎为Double命名的字符串。我发现很难找到有关该论点的文档,the top result on google似乎没有提到它。

我进行了一次测试,据我所知,它只是用于演示/打印目的。除此之外还有什么用吗?

double example

1 个答案:

答案 0 :(得分:2)

它为错误消息中使用的double设置标题。

#<Double "A Double"> received unexpected message :foo with (no args)

如果您有多个双打,它将帮助您确定哪个收到了意外消息。

除了标题之外,您还可以以预定义的方式对方法进行双重响应,而无需使用allow(double_x).to receive(:foo).and_return('bar')之类的方法进行设置:

let(:double_x) { double("Double X", foo: 'bar') }
# double_x.foo 
# => "bar"

标题是可选的,可以省略。