tutorial rails factorybot example bot ruby-on-rails ruby rspec factory-bot

ruby on rails - rails - Factory_Girl+RSpec: método indefinido ''create'' cuando create(: user)



rspec factory bot (2)

Debe mover la línea de create dentro de la especificación en la que se está utilizando:

it ''should have a single registered user.'' do dummy = create(:user) expect(User.count).to eq(1) end

En este momento, esa línea no tiene contexto (no en una especificación y no en un bloque before ). Esa es probablemente la razón por la que está obteniendo el error. Probablemente tengas toda la configuración correcta, pero solo tienes una línea en el lugar equivocado.

No se puede llamar "dummy = create (: user)" para crear un usuario. He ido y venido durante horas.

/home/parreirat/backend-clone/Passworks/spec/models/user_spec.rb:15:in `block (2 levels) in <top (required)>'': undefined method `create'' for #<Class:0xbcdc1d8> (NoMethodError)"

Esta es la fábrica, users.rb:

FactoryGirl.define do factory :user do email ''[email protected]'' password ''chucknorris'' name ''luis mendes'' end end

Así es como llamo a FactoryGirl en user_spec.rb:

require ''spec_helper'' describe ''User system:'' do context ''registration/login:'' do it ''should have no users registered initially.'' do expect(User.count).to eq(0) end it ''should not be logged on initially.'' do expect(@current_user).to eq(nil) end dummy = create(:user) it ''should have a single registered user.'' do expect(User.count).to eq(1) end end end

Agregué esto en spec_helper.rb como se indica:

RSpec.configure do |config| # Include FactoryGirl so we can use ''create'' instead of ''FactoryGirl.create'' config.include FactoryGirl::Syntax::Methods end


Otra razón para obtener el error de undefined method ''create'' podría ser que le falta esta configuración en spec/support/factory_girl.rb :

RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods end

Encontré ese código aquí .