我是RSpec的新手,当我编写规范测试时,我遇到了一个问题,即测试测试正在通过,即使返回值与我在预期中指定的值不同。例如:
@q= Query.new
@q.should_receive(:number_to_name).with(0).and_return("no such boro")
@q.number_to_name(0)
即使Query.number_to_name在我用0调用它时返回不同的值,这也会通过。我不明白该怎么做。
答案 0 :(得分:-1)
should_receive
是rspec嘲弄工具的一部分。
@q.should_receive(:number_to_name).with(0).and_return("no such boro")
您正在number_to_name
上模仿@q
,设置期望number_to_name
将使用0
参数调用,并且模拟将返回"no such boro"
。执行@q.number_to_name(0)
然后通过调用mock来满足该期望。您的number_to_name
实现从未被调用过,也未进行过测试。