我正在进行模型测试,如下所示:
require 'rails_helper'
RSpec.describe Demand, type: :model do
it 'has a valid factory' do
expect(create(:demand)).to be_valid
end
it 'is invalid without a parent_id' do
expect(create(:demand, parent_id: nil)).to_not be_valid
end
end
现在第二个测试“没有parent_id时无效”失败并显示以下消息:
Demand is invalid without a parent_id
Failure/Error: expect(create(:demand, parent_id: nil)).to_not be_valid
ActiveRecord::RecordInvalid:
Validation failed: Parent can't be blank
这感觉很奇怪,因为记录告诉我它不能是空白的 - 这正是我正在测试的,不是吗?有什么建议吗?
编辑:我发现了这个错误。看看下面的答案。
答案 0 :(得分:3)
如果有人犯了同样的错误,请回答:
it 'is invalid without a parent_id' do
expect(build(:demand, parent_id: nil)).to_not be_valid
end
它需要"构建"而不是"创建"。