Rspec 如何指定预期的返回值?

Rspec 如何指定预期的返回值?,rspec,expectations,Rspec,Expectations,我是RSpec的新手,在编写规范测试时,我遇到了一个问题,规范测试通过了,尽管返回值与我在预期中指定的不同。例如: @q= Query.new @q.should_receive(:number_to_name).with(0).and_return("no such boro") @q.number_to_name(0) 即使我用0调用Query.number_to_name时返回了不同的值,这也会通过。我不明白这是怎么回事 应该接收是rspec模拟工具的一部分 @q.sho

我是RSpec的新手,在编写规范测试时,我遇到了一个问题,规范测试通过了,尽管返回值与我在预期中指定的不同。例如:

  @q= Query.new
  @q.should_receive(:number_to_name).with(0).and_return("no such boro") 
  @q.number_to_name(0) 

即使我用0调用Query.number_to_name时返回了不同的值,这也会通过。我不明白这是怎么回事

应该接收
是rspec模拟工具的一部分

@q.should_receive(:number_to_name).with(0).and_return("no such boro")

您正在
@q
上模拟
number\u to\u name
,设置调用
number\u to\u name
的预期参数为
0
,模拟将返回
“无此类boro”
。执行
@q.number\u to\u name(0)
然后通过调用mock来满足该期望。您的
number\u to\u name
实现从未被调用,也未被测试

向下投票因为这不能回答最初的问题,问题是如何指定期望值。您刚才解释了示例代码不起作用的原因。