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 c
e 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 => false
irá 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 --sandbox
Você 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_definitions
Inclua os métodos FactoryBot para evitar prefixar todas as chamadas ao FB com FactoryBot
(em create
vez de FactoryBot.create
):
include FactoryBot::Syntax::Methods
PS 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_upload
problema de método indefinido , que foi causado pela ausência do ActionDispatch::TestProcess
mó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, FactoryBot
disponibilizando.
Você pode fazer isso ou atualizar seu Gemfile para exigi-lo na inicialização, como na resposta de muttonlamb.
require 'faker'
.