나는 두 개의 공장이있다.factory_girl create에서 기존 인스턴스를 반환하려면 어떻게해야합니까?</p> <pre><code>factory :foo factory :bar </code></pre> <p>푸 has_one 바 :
foo.rb에는 after_create 콜백이있어서 Bar 객체를 생성합니다. 현재, 내가 이런 식으로 필요한 것을 얻을 수 있어요,하지만 그것은 최소한의 예입니다 :
let(:bar) { create(:foo).bar }
내가 (작동하지 않는)과 같이,보다 직접적으로 바 객체를 좀하고 싶습니다
..
factory :bar_from_foo_callback do
to_create { create(:foo).bar }
end
... 그런 다음 create(:bar_from_foo_callback)
을 호출하여 필요한 바를 얻으십시오. 나는 to_create이 좋은 내기처럼 보인다고 생각했지만, 그것은 나에게주고 :
undefined method `bar' for
#<FactoryGirl::Declaration::Static:0x007fb85e3d79d0>
나는 그것이 생성하지 않도록 공장을 정의 할 수있는 방법이 또 다른 공장을 호출하고 콜백을 사용 있나요? 당신 create(:bar)
하지만,이 경우는 아무것도하지 않는다는 Bar
이미 저장된 때문에 때
factory :bar do
initialize_with { create(:foo).bar }
end
참고 factory_girl 인스턴스에 save!
를 호출하는 : 나는 광범위하게 그것을 테스트하지 않은 있지만