2013-03-23 74 views
4

我有使用早該被失敗的原因,我不明白一個考驗。任何想法是什麼解決這個?我爲測試目的硬編碼陣列。早該rspec的匹配器ensure_inclusion_of

我所有的其他早該匹配爲基礎的測試工作正常。

驗證

validates_inclusion_of :status, :in => ["Active", "Closed"] 

測試:

it { should ensure_inclusion_of(:status).in_array(["Active", "Closed"]) } 

失敗

Failure/Error: it { should ensure_inclusion_of(:status).in_array(["Active", "Closed"]) } 
    ["Active", "Closed"] doesn't match array in validation 

回答

3

查看源代碼,這個匹配:

https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/active_model/ensure_inclusion_of_matcher.rb#L88

你有另一種驗證,防止零或空值:status

+0

感謝。這看起來像這個問題。 – 2013-03-29 18:28:00

+0

代碼已經改變,新的鏈接是:https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/active_model/ensure_inclusion_of_matcher.rb#L22 – 2014-04-28 21:11:12

+0

鏈接又變了:HTTPS:/ /www.omniref.com/ruby/gems/shoulda-matchers/2.2.0/files/lib/shoulda/matchers/active_model/ensure_inclusion_of_matcher.rb – BananaNeil 2015-04-02 00:46:27