Ruby on rails Rspec测试执行它应该执行的操作,但显示失败
我正在做一个模型测试,它看起来像这样:Ruby on rails Rspec测试执行它应该执行的操作,但显示失败,ruby-on-rails,activerecord,rspec,Ruby On Rails,Activerecord,Rspec,我正在做一个模型测试,它看起来像这样: 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 b
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
现在,第二个测试“没有父\u 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
这感觉很奇怪,因为记录告诉我它不能是空白的——这正是我正在测试的,不是吗?有什么建议吗
编辑:我发现了错误。查看下面的答案。如果有人犯了同样的错误,以下是答案:
it 'is invalid without a parent_id' do
expect(build(:demand, parent_id: nil)).to_not be_valid
end
它需要“构建”而不是“创建”