2009-10-27 29 views

回答

0

failure_message_for_should不是匹配器,如果你正在編寫自己的自定義匹配器,這是一種覆蓋方法。我不認爲它符合你的要求。

1

只要寫一個簡單的匹配器,然後你就可以指定你自己的消息。看看下面的代碼:

def be_even 
simple_matcher("an even number") { |given| given % 2 == 0 } 
end 

describe 2 do 
it "should be even" do 
    3.should be_even 
end 
end 

將這個代碼在一個名爲so_spec.rb像這樣運行:

spec so_spec.rb -f n -c 

這會給你以下的輸出:

'2 should be even' FAILED 
expected "an even number" but got 3 

並且您可以很容易地看到「偶數」實際上是自定義消息,並且比預期更具信息性。這是一種方法。但是,rspec非常靈活,您可以按照BJ Clark的說法編寫自己的自定義匹配器,它會給您更多的靈活性。我使用了自定義和簡單匹配器,有時候一個簡單的匹配器就足夠了。你有不同的方式選擇適合你需求的方法。

相關問題