1
我的驗證可以確保必填字段只能設置爲A
或R
:RSpec如何測試空白/空字符串以進行包含驗證?
在型號:
validates :status_code, inclusion: { in: %w(A R) }
在RSpec的,我有以下規格:
it { expect(@car).to allow_value("A", "R").for(:status_code) }
it { expect(@car).to_not allow_value(nil, "").for(:status_code) }
的第一次RSpec通過,但第二次出現錯誤:
Failure/Error: it { expect(@car).to_not allow_value(nil, "").for(:status_code) }
Expected errors when status_code is set to "", got no errors
我錯過了什麼?我正在使用RSpec 3.1。
感謝您的反饋!如果這是在內置驗證器中包含布爾選項的情況,那麼我的模型驗證器不應該爲「一致性」包含'allow_blank:false,allow_nil:false'(儘管包括這些是多餘的)。或者,如果我確實包含'allow_blank:false,allow_nil:false',驗證基本上會因'包含'而變得良性。有些東西似乎不對。我期待着您的回覆。 – user1322092 2014-09-25 16:14:14
更新了另一個可能的解決方案。 – 2014-09-25 21:02:57
謝謝吉米。既不驗證工作。我認爲這是一個Rspec的錯誤。如果我用'c'然後'c = Car.first'然後'c.status_code ='''然後'c.valid?'然後'c.errors.full_messages'並且我得到'[「狀態碼不包含在列表「]' – user1322092 2014-09-25 22:52:08