ruby on rails - rails - ¿Cómo uso las fábricas de FactoryGirl en la consola de rieles?
rspec factory bot (3)
Hago esto de la siguiente manera:
Inicie la consola de rieles en el entorno de prueba en el modo sandbox.
rails console test --sandbox
Necesitas esto por dos razones:
- Cualquier cambio que hagas se deshace.
- Si ya tiene algunos datos semilla, puede suceder que las fábricas comiencen la serialización de atributos desde 1, pero es posible que estos registros ya existan.
Luego en la consola:
Requerir FactoryBot (fue llamado FactoryGirl):
require ''factory_bot''
Cargue las definiciones de fábrica:
FactoryBot.find_definitions
Incluya los métodos FactoryBot para evitar el prefijo de todas las llamadas a FB con
FactoryBot
(create
lugar deFactoryBot.create
):include FactoryBot::Syntax::Methods
PS 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.
Estoy usando la consola de rieles en el entorno de desarrollo y quiero usar fábricas. ¿Cómo puedo acceder a ellos?
He intentado require "FactoryGirl"
que devuelve
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
Necesitas require ''factory_girl_rails''
, que es la gema real que están utilizando Rails. Esa gema incluirá la biblioteca Factory Girl, haciendo que FactoryGirl esté disponible.
Puede hacer esto o actualizar su Gemfile para que lo requiera al inicio como en la respuesta de muttonlamb.
Para resolver este problema, asegúrese de que la gema bot de fábrica esté especificada en su Gemfile similar a este
group :development, :test do
gem ''factory_bot_rails''
end
A continuación, bundle install
.
Esto debería hacer que la clase FactoryBot esté disponible en la consola de desarrollo.
Espero que esto ayude.