gpt4 book ai didi

ruby-on-rails - 为什么运行 Rspec 时会出现未定义方法 'have' 错误?

转载 作者:行者123 更新时间:2023-12-03 01:15:26 25 4
gpt4 key购买 nike

我最近升级到 Rails 4,除了我的 Rspec 测试之外,一切正常。

require 'spec_helper'

describe Invoice do

before :each do
@user = FactoryGirl.create(:activated_user)
person = FactoryGirl.create(:person, :user => @user, :company => nil)
@project = FactoryGirl.create(:project, :user => @user, :person_ids => [person.id], :invoice_recipient_id => person.id)
end

it "has a valid factory" do
expect(FactoryGirl.build(:invoice, :project => @project, :user => @user)).to be_valid
end

it "is invalid without a number" do
expect(FactoryGirl.build(:invoice, :project => @project, :user => @user, :number => nil)).to have(1).errors_on(:number)
end

end

运行这些测试时,我收到此错误:

Failure/Error: expect(FactoryGirl.build(:invoice, :project => @project, :user => @user, :number => nil)).to have(1).errors_on(:number)
NoMethodError:
undefined method `have' for #<RSpec::ExampleGroups::Invoice_2:0x009ge29360d910>
# ./spec/models/invoice_spec.rb:16:in `block (2 levels) in <top (required)>'

有人可以告诉我我在这里缺少什么吗?

我已经用谷歌搜索过了,但没有任何结果。 have 方法实际上在 Rspec 中相当标准,我不明白为什么它不起作用。

感谢您的指点。

最佳答案

have 系列匹配器已在 RSpec 2.99 中弃用,并已移至单独的 rspec-collection_matchers从 RSpec 3.0 开始是 gem。这在https://rspec.info/blog/2013/11/rspec-2-99-and-3-0-betas-have-been-released/中进行了讨论。 ,其中还给出了迁移到 3.0 的建议方法。具体来说,它建议安装/使用 RSpec 2.99,以便查看与 3.0 中删除/移动的项目相关的弃用消息。

关于ruby-on-rails - 为什么运行 Rspec 时会出现未定义方法 'have' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com