0

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

4

1 回答 1

-1

should_receive是 rspec 的模拟工具的一部分。

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

您正在模拟number_to_name@q设置一个期望,该期望number_to_name将使用 of 的参数调用,0并且模拟将返回"no such boro"。执行@q.number_to_name(0)然后通过调用模拟来满足该期望。你的实现number_to_name从未被调用过,也没有被测试过。

于 2011-01-09T01:21:04.817 回答