는 두 가지 모델을 고려하십시오. 그럼 난 내 사양에 두 개의 공장을 정의 :FactoryGirl 어떻게 콜백
factory :user do
end
factory book do
user
end
여기에 질문, 내가 Book
에 대한 테스트를 쓰고 있어요 때 사용할 때, 나는 기록 book1
Book
위해 (현실을 부르 자)를 생성하고 싶습니다이야을 FactoryGirl.create(:book)
. Book
의 인스턴스를 만든 다음 user
으로 정의 된 연결을 만들려고합니다. 사용자를 생성 한 후 after_create
이 트리거되며 user
에 대해 book2
이 생성됩니다. 그런 다음 book1
을 user
으로 바인딩하려고 시도하며 고유성 연결에 의해 차단됩니다.
이제 book = FactoryGirl.create(:user).book
을 사용하고 있습니다. 이것이 최선의 방법인가요? 나는 그것이 매우 직관적 인 노트라고 생각한다. 나는 Book
을 테스트하고있다. 나는 그것이 가장 좋을 것이라고 생각한다. book = FactoryGirl.create(:book)
고마워.
위대한 아이디어. 하지만 나는 (NoMethodError)'에 대해'undefined method'and_return '을 가지고 샘플을 시험해 본다. 왜 그런지 모르겠다. 하지만 나는'after (: build) {| user | –
larryzhao
rails_helper.rb에'include RSpec :: Mocks :: ExampleMethods'를 포함 하시겠습니까? –
예, 미안 해요. 처음에는 그걸 놓쳤습니다. 나는 단지'rails_helper.rb'에'RSpec :: Mocks :: ExmpleMethods'를 포함 시키려하고 있습니다. 나는 여전히 NoMethodError : #FactoryGirl :: SyntaxRunner : 0x007fa33a963e00>에 대해 정의되지 않은 메소드'allow '를 얻는다. – larryzhao