如何指定预期的回报值?

时间:2011-01-09 01:09:49

标签: rspec expectations

我是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调用它时返回不同的值,这也会通过。我不明白该怎么做。

1 个答案:

答案 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实现从未被调用过,也未进行过测试。