2011-01-09 95 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