Estoy usando la consola rails en el entorno de desarrollo y quiero usar fábricas. ¿Cómo puedo acceder a ellos?
He probado require "FactoryGirl"
que devuelve
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
Estoy usando la consola rails en el entorno de desarrollo y quiero usar fábricas. ¿Cómo puedo acceder a ellos?
He probado require "FactoryGirl"
que devuelve
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
rails c
luego hacer unrequire 'factory_bot'
Respuestas:
Para resolver este problema, asegúrese de que la gema del bot de fábrica esté especificada en su Gemfile de manera similar a esta
group :development, :test do
gem 'factory_bot_rails'
end
Entonces bundle install
.
Esto debería hacer que la clase FactoryBot esté disponible en la consola de desarrollo.
Espero que esto ayude.
gem 'factory_girl_rails', :require => false
generará errores para cualquiera que intente configurar un entorno de desarrollo desde cero, tenga cuidado.
rails console test
, le permitirá crear una consola en el entorno de prueba para que no necesite actualizar su Gemfile para usar un paquete de prueba en el entorno de desarrollo
Hago esto de la siguiente manera:
Inicie la consola de rieles en el entorno de prueba en modo sandbox.
rails console -e test --sandbox
Necesita esto por dos razones:
Luego en la consola:
Requieren FactoryBot (se llamaba FactoryGirl):
require 'factory_bot'
Cargue las definiciones de fábrica:
FactoryBot.find_definitions
Incluya los métodos FactoryBot para evitar prefijar todas las llamadas a FB con FactoryBot
(en create
lugar de FactoryBot.create
):
include FactoryBot::Syntax::Methods
PD Para la gema de fabricación , puede cargar las definiciones en la consola de rieles con:
Fabrication.manager.load_definitions
También require 'faker'
si lo usas.
require 'ffaker'
?
fixture_file_upload
problema de método indefinido , causado por la ausencia de ActionDispatch::TestProcess
módulo, por lo que podría considerar incluirlo también
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Es necesario require 'factory_bot_rails'
, que es la gema real que está utilizando Rails. Esa joya incluirá la biblioteca Factory Bot, que FactoryBot
estará disponible.
Puede hacer esto o actualizar su Gemfile para requerirlo al inicio como en la respuesta de muttonlamb.
require 'faker'
.