Estou usando console rails no ambiente de desenvolvimento e quero usar fábricas. Como posso ter acesso a eles?
Eu tentei o require "FactoryGirl"que retorna
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
Estou usando console rails no ambiente de desenvolvimento e quero usar fábricas. Como posso ter acesso a eles?
Eu tentei o require "FactoryGirl"que retorna
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
rails ce fazer umrequire 'factory_bot'
Respostas:
Para resolver este problema, certifique-se de que a gem do bot de fábrica é especificada em seu Gemfile semelhante a este
group :development, :test do
gem 'factory_bot_rails'
end
Então bundle install.
Isso deve tornar a classe FactoryBot disponível no console de desenvolvimento.
Espero que isto ajude.
gem 'factory_girl_rails', :require => falseirá gerar erros para qualquer um que tentar configurar o ambiente de desenvolvimento do zero.
rails console test, ela permitirá que você crie um console no ambiente de teste para que você não precise atualizar seu Gemfile para usar um pacote de teste no ambiente de desenvolvimento
Eu faço isso da seguinte maneira:
Inicie o console do Rails no ambiente de teste no modo sandbox.
rails console -e test --sandboxVocê precisa disso por dois motivos:
Em seguida, no console:
Requer FactoryBot (era chamado de FactoryGirl):
require 'factory_bot'Carregue as definições de fábrica:
FactoryBot.find_definitionsInclua os métodos FactoryBot para evitar prefixar todas as chamadas ao FB com FactoryBot(em createvez de FactoryBot.create):
include FactoryBot::Syntax::MethodsPS Para joia de fabricação, você pode carregar as definições no console do trilho com:
Fabrication.manager.load_definitions
Também require 'faker'se você usar.
require 'ffaker'?
fixture_file_uploadproblema de método indefinido , que foi causado pela ausência do ActionDispatch::TestProcessmódulo, então você pode considerar incluí-lo também
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Você precisa require 'factory_bot_rails', que é a verdadeira jóia que está sendo usada pelo Rails. Essa joia incluirá a biblioteca do Factory Bot, FactoryBotdisponibilizando.
Você pode fazer isso ou atualizar seu Gemfile para exigi-lo na inicialização, como na resposta de muttonlamb.
require 'faker'.