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
它需要“构建”而不是“创建”