【问题标题】:Rspec test does what it should but displays failureRspec 测试做了它应该做的,但显示失败
【发布时间】:2017-03-25 09:39:38
【问题描述】:

我正在做一个看起来像这样的模型测试:

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

这感觉很奇怪,因为记录告诉我它不能是空白的 - 这正是我正在测试的,不是吗?有什么建议吗?

编辑:我发现了错误。看看下面的答案。

【问题讨论】:

    标签: ruby-on-rails activerecord rspec


    【解决方案1】:

    如果有人犯了同样的错误,答案如下:

    it 'is invalid without a parent_id' do
      expect(build(:demand, parent_id: nil)).to_not be_valid
    end
    

    它需要是“构建”而不是“创建”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      相关资源
      最近更新 更多