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

 哈哈1991188 发布于 2023-02-12 16:37

我最近升级到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 #
# ./spec/models/invoice_spec.rb:16:in `block (2 levels) in '

谁能告诉我这里缺少什么?

我已经google了,但没有出现.该have方法在Rspec中实际上是相当标准的,我不明白为什么它不应该工作.

谢谢你的任何指示.

1 个回答
  • have匹配器的家庭RSpec的2.99已被废弃,并已被转移到一个独立的rspec的-collection_matchers创业板的RSpec 3.0.这在http://myronmars.to/n/dev-blog/2013/11/rspec-2-99-and-3-0-betas-have-been-released中进行了讨论,这也提供了建议的迁移方法到3.0.具体来说,它建议安装/使用RSpec 2.99以查看与在3.0中删除/移动的项目相关的弃用消息.

    2023-02-12 16:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有