[ruby-on-rails] Rails 콘솔에서 FactoryGirl의 팩토리를 사용하는 방법

개발 환경에서 Rails 콘솔을 사용하고 있으며 팩토리를 사용하고 싶습니다. 액세스 권한을 얻으려면 어떻게해야합니까?

나는 require "FactoryGirl"어떤 반환 을 시도했다

1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl



답변

이 문제를 해결하려면 팩토리 봇 gem이 다음과 같이 Gemfile에 지정되어 있는지 확인하십시오.

group :development, :test do
  gem 'factory_bot_rails'
end

그런 다음 bundle install.

그러면 개발 콘솔에서 FactoryBot 클래스를 사용할 수 있습니다.

도움이 되었기를 바랍니다.


답변

다음과 같은 방법으로 수행합니다.

  • 샌드 박스 모드의 테스트 환경에서 Rails 콘솔을 시작합니다.

    rails console -e test --sandbox
    

다음 두 가지 이유로 필요합니다.

  1. 모든 변경 사항이 롤백됩니다.
  2. 이미 일부 시드 데이터가있는 경우 팩토리가 1부터 속성 직렬화를 시작하지만 이러한 레코드가 이미 존재할 수 있습니다.

그런 다음 콘솔에서 :

  • FactoryBot 필요 (이전 이름은 FactoryGirl) :

    require 'factory_bot'
    
  • 팩토리 정의를로드합니다.

    FactoryBot.find_definitions
    
  • FB에 대한 모든 호출에 FactoryBot( create대신 FactoryBot.create) 접두사를 붙이지 않도록 FactoryBot 메서드를 포함합니다 .

    include FactoryBot::Syntax::Methods
    

추신 : Fabrication gem의 경우 다음을 사용하여 rails 콘솔에 정의를로드 할 수 있습니다.

Fabrication.manager.load_definitions

또한 require 'faker'그것을 사용하는 경우.


답변

당신은 필요 require 'factory_bot_rails'레일에 의해 사용되고 실제 보석이다. 이 gem에는 Factory Bot 라이브러리가 포함되어 FactoryBot사용할 수 있습니다.

이 작업을 수행하거나 muttonlamb의 답변에서와 같이 시작시 필요하도록 Gemfile을 업데이트 할 수 있습니다.


답변