Sto usando la console rails nell'ambiente di sviluppo e voglio usare le factory. Come posso accedervi?
Ho provato require "FactoryGirl"
quali ritorni
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
Sto usando la console rails nell'ambiente di sviluppo e voglio usare le factory. Come posso accedervi?
Ho provato require "FactoryGirl"
quali ritorni
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
rails c
quindi fare unrequire 'factory_bot'
Risposte:
Per risolvere questo problema assicurati che la gemma del bot di fabbrica sia specificata nel tuo Gemfile in modo simile a questo
group :development, :test do
gem 'factory_bot_rails'
end
Allora bundle install
.
Ciò dovrebbe rendere disponibile la classe FactoryBot nella console di sviluppo.
Spero che questo ti aiuti.
gem 'factory_girl_rails', :require => false
genererà errori per chiunque cerchi di configurare l'ambiente di sviluppo da zero, attenzione.
rails console test
, ti consentirà di creare una console nell'ambiente di test, quindi non è necessario aggiornare il tuo Gemfile per utilizzare un pacchetto di test nell'ambiente di sviluppo
Lo faccio nel modo seguente:
Avvia la console rails nell'ambiente di test in modalità sandbox.
rails console -e test --sandbox
Ti serve per due motivi:
Quindi nella console:
Richiedi FactoryBot (si chiamava FactoryGirl):
require 'factory_bot'
Carica le definizioni di fabbrica:
FactoryBot.find_definitions
Includere i metodi FactoryBot per evitare di anteporre a tutte le chiamate a FB FactoryBot
( create
invece di FactoryBot.create
):
include FactoryBot::Syntax::Methods
PS Per la gemma di fabbricazione puoi caricare le definizioni nella console dei binari con:
Fabrication.manager.load_definitions
Anche require 'faker'
se lo usi.
require 'ffaker'
?
fixture_file_upload
problema di metodo non definito , causato dall'assenza del ActionDispatch::TestProcess
modulo, quindi potresti considerare di includerlo anche
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
È necessario require 'factory_bot_rails'
, che è la vera gemma utilizzata da Rails. Quella gemma includerà la libreria Factory Bot, messa a FactoryBot
disposizione.
Puoi farlo o aggiornare il tuo Gemfile per richiederlo all'avvio come nella risposta di muttonlamb.
require 'faker'
.