2016-07-27 38 views
1

我注意到在我的一個測試中,我有一個錯誤的響應檢查,expect(response).to be_succes而不是expect(response).to be_success。測試通過。爲什麼測試仍然通過?Rspec:be_succes(不是be_success)通過

response.succes?回報:

Failure/Error: response.succes? 
    NoMethodError: 
     undefined method `succes?' for #<ActionController::TestResponse:0x007fe6e22a2530> 
+0

你100%確定嗎?你能粘貼rspec文件嗎? – aBadAssCowboy

+0

也許更明顯的錯字像'be_sssss'並且看到 – aBadAssCowboy

+0

@aBadAssCowboy我做了,我嘗試了be_succe和be_successssss,他們都失敗了。該文件(包括文件名)很好。我也在我的應用程序的其他文件中測試了這一點,它也通過了be_succes。謝謝。 –

回答

1

我在RSpec的曾與傢伙chat關於這個問題,事實證明,這是一個有點故意的操作,並且由於RSpec中的present_tense_predicatepredicate方法:https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/be.rb#L248

由於提出這個問題,有人提出這個問題將在RSpec 4:https://github.com/rspec/rspec-expectations/issues/935中被刪除。

+0

將自己的答案標記爲已接受絕對沒問題。 –

+1

@PaulFioravanti只需稍等一下。 –