tutorial sheet rails factorygirl example cheat bot ruby-on-rails ruby factory-bot

ruby on rails - sheet - Fábrica no registrada: usuario



factorygirl ruby (6)

Estoy siguiendo el tutorial de Michal Hartls Rails Capítulo 7. He instalado la gema de niña de Factory. Sigo recibiendo este error cuando ejecuto mi prueba

Failures: 1) UsersController GET ''show'' should be successful Failure/Error: @user = FactoryGirl.create(:user) ArgumentError: Factory not registered: user # ./spec/controllers/users_controller_spec.rb:10:in `block (3 levels) in <top (required)>'' Finished in 0.66336 seconds 42 examples, 1 failure Failed examples: rspec ./spec/controllers/users_controller_spec.rb:14 # UsersController GET ''show'' should be successful

Gemfile

group :test do gem ''autotest'', ''4.4.6'' gem "autotest-growl", "~> 0.2.16" gem "autotest-rails", "~> 4.1.2" gem "rspec", "~> 2.9.0" gem ''rspec-rails'', ''2.9.0'' gem ''webrat'', ''0.7.3'' gem "spork", ''0.9.0'' gem ''annotate'', ''~> 2.4.1.beta'' gem "factory_girl", "~> 3.2.0" end # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem ''therubyracer'', :platform =>

Mi user_controller_spec.rb es

require ''spec_helper'' describe UsersController do render_views describe "GET ''show''" do before(:each) do @user = FactoryGirl.create(:user) end it "should be successful" do get :show, :id => @user response.should be_success end end describe "GET ''new''" do it "should be successful" do get :new response.should be_success end it "should have the right title" do get :new response.should have_selector(''title'', :content => "Sign up") end end end

Mi factories.rb es

FactoryGirl.create :user do |user| user.name "Mark Brown" user.email "[email protected]" user.password "foobar" user.password_confirmation "foobar" end

Cambié

Factory(:name)

a

FactoryGirl.create(:user)

en la línea 10 en mi user_controller_spec.rb porque recibí una advertencia de disminución. Pensé que eso lo solucionaría, pero ahora solo estoy recibiendo.

Factory not registered: user

¿Puede alguien decirme qué está pasando?


¿Qué pasa si define fábrica primero, no la crea? prueba esto:

FactoryGirl.define do factory :user do name "Mark Brown" email "[email protected]" password "foobar" password_confirmation "foobar" end end


En tu Gemfile deberías reemplazar con este

gem "factory_girl_rails", "~> 4.0"

en lugar de

gem "factory_girl", "~> 3.2.0"


Estaba usando la palanca como mi IRB. Cuando lo saqué de mis gemas pude hacer que Factory girl funcionara correctamente.

rails c -e test irb -> FactoryGirl.create(:user)

Tal vez alguien pueda explicar cómo hacer funcionar esto haciendo palanca.


Necesitará la gema ''factory_girl_rails'' en el grupo de prueba


Tuve el mismo error cuando utilicé FactoryGirl por primera vez en ese Capítulo y todo lo que tenía que hacer era reiniciar el servidor y Spork si lo está usando. Espero eso ayude


Ya lo he arreglado.

La solución fue cambiar la gem ''factory_girl'' a gem ''factory_girl_rails'' en mi Gemfile.