我想從期望中返回更多的信息失敗消息。我有一個幫助器方法迭代散列,測試模型上的質量分配保護。如果期望失敗,我想輸出哪個屬性失敗。我遇到了failure_message_for_should,但我不確定如何正確使用它。有人可以給我看一個使用rspec使用failure_message_for_should的例子嗎?
謝謝!
我想從期望中返回更多的信息失敗消息。我有一個幫助器方法迭代散列,測試模型上的質量分配保護。如果期望失敗,我想輸出哪個屬性失敗。我遇到了failure_message_for_should,但我不確定如何正確使用它。有人可以給我看一個使用rspec使用failure_message_for_should的例子嗎?
謝謝!
failure_message_for_should
不是匹配器,如果你正在編寫自己的自定義匹配器,這是一種覆蓋方法。我不認爲它符合你的要求。
只要寫一個簡單的匹配器,然後你就可以指定你自己的消息。看看下面的代碼:
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的說法編寫自己的自定義匹配器,它會給您更多的靈活性。我使用了自定義和簡單匹配器,有時候一個簡單的匹配器就足夠了。你有不同的方式選擇適合你需求的方法。