tutorial rails factorybot create bot ruby-on-rails rspec ruby-on-rails-4 factory-bot

ruby on rails - rails - ¿Por qué aparece un error de ''tener'' un método no definido al ejecutar Rspec?



factorybot gem (3)

En las últimas versiones de rspec "have" está en desuso, pero aún puedes usarlo mediante la gema rspec-collection_matchers .

# Gemfile ... gem ''rspec-collection_matchers'', group: :test ... # spec/spec_helper.rb ... require ''rspec/collection_matchers'' ....

Recientemente me actualicé a Rails 4 y todo funciona bien, excepto en mis pruebas 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

Al ejecutar estas pruebas me sale este error:

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)>''

¿Alguien puede decirme lo que me estoy perdiendo aquí?

Ya lo busqué en Google pero no surgió nada. El método have es bastante estándar en Rspec y no veo por qué no debería funcionar.

Gracias por cualquier punteros.



Ok lo tengo.

Tuve el número de versión incorrecto en mi Gemfile.

Antes de:

gem ''rspec-rails'', ''~> 3.0.0.beta''

Después:

gem ''rspec-rails''