Używam konsoli rails w środowisku programistycznym i chcę korzystać z fabryk. Jak mogę uzyskać do nich dostęp?
Próbowałem, require "FactoryGirl"
który powraca
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
Używam konsoli rails w środowisku programistycznym i chcę korzystać z fabryk. Jak mogę uzyskać do nich dostęp?
Próbowałem, require "FactoryGirl"
który powraca
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
rails c
a potem zrobićrequire 'factory_bot'
Odpowiedzi:
Aby rozwiązać ten problem, upewnij się, że fabryczny klejnot bota jest określony w twoim pliku Gemfile podobnie do tego
group :development, :test do
gem 'factory_bot_rails'
end
Wtedy bundle install
.
Powinno to spowodować udostępnienie klasy FactoryBot w konsoli programistycznej.
Mam nadzieję że to pomoże.
gem 'factory_girl_rails', :require => false
wyrzucać błędy dla każdego, kto próbuje skonfigurować środowisko programistyczne od zera, uwaga.
rails console test
, pozwoli ci stworzyć konsolę w środowisku testowym, więc nie musisz aktualizować swojego Gemfile, aby używać pakietu testowego w środowisku programistycznym
Robię to w następujący sposób:
Uruchom konsolę rails w środowisku testowym w trybie piaskownicy.
rails console -e test --sandbox
Potrzebujesz tego z dwóch powodów:
Następnie w konsoli:
Wymagaj FactoryBot (nazywał się FactoryGirl):
require 'factory_bot'
Załaduj definicje fabryczne:
FactoryBot.find_definitions
Uwzględnij metody FactoryBot, aby uniknąć przedrostków wszystkich wywołań FB z FactoryBot
( create
zamiast FactoryBot.create
):
include FactoryBot::Syntax::Methods
PS W przypadku klejnotu produkcyjnego możesz załadować definicje w konsoli szyn za pomocą:
Fabrication.manager.load_definitions
Również require 'faker'
jeśli go używasz.
require 'ffaker'
?
fixture_file_upload
problem, który został spowodowany przez brak ActionDispatch::TestProcess
modułu, więc można rozważyć włączenie go również
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Musisz require 'factory_bot_rails'
, czyli prawdziwy klejnot używany przez Railsy. Ten klejnot będzie zawierał bibliotekę Factory Bot, FactoryBot
udostępniając ją.
Możesz to zrobić lub zaktualizować plik Gemfile, aby wymagał go przy starcie, jak w odpowiedzi baraniny.
require 'faker'
.