我的验证确保必填字段只能设置为 A
或 R
:
在模型中:
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 .
1 回答
内置验证器接受布尔选项
:allow_blank
和:allow_nil
来控制当值为这两者之一时它应该如何表现 . 试试这个:它可能也可以添加一个存在验证器来处理nil和空字符串: