我的模型有如下验证:
# Account Model
validates :email, presence: true
validates :password, presence: true
所以我为这个模型创建了一个factory_girl,其空白值如下:
factory :account do
end
trait :empty do
email ""
password ""
end
所以我的测试看起来像:
it "doesn't allow empty fields" do
account = create(:account, :empty)
account.should_not be_valid
end
所以我说这个带有空字段的模型应该通过“should_not”验证失败。
然而,当我运行rspec时,我收到了这个错误:
Validation failed: Email can't be blank, Password can't be blank
# ./spec/models/account_spec.rb:29:in `block (3 levels) in <top (required)>'
我的测试有什么问题?
答案 0 :(得分:4)
rspec错误来自此行account = create(:account, :empty)
,而不是此account.should_not be_valid
create
将尝试在数据库中创建记录,并进行验证。使用build
代替