2011-01-09 96 views
0

我是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返回一个不同的值。

回答

-1

should_receive是rspec的嘲笑工具的一部分。

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

你是在嘲笑@qnumber_to_name,设定一个期望,number_to_name将与0参数和模拟返回"no such boro"被调用。执行@q.number_to_name(0)然后通过调用模拟来满足该期望。您的number_to_name的实施从未被调用过,未被测试。

+1

Downvoting因为这不能回答原来的问题,所以问题是如何指定期望值。你只是解释了为什么示例代码不起作用。 – 2016-05-04 00:02:51