2011-08-08 4 views
6

나는 RSpec for Factory를 Spork와 함께 사용하려고합니다. spork없이 테스트를 실행할 때마다 모든 것이 통과되지만 Spork로 실행할 때 다른 팩토리에 종속 된 팩터 리의 인스턴스를 만드는 모든 테스트가 실패합니다. 예를 들어이공장 소녀 협회와 spork 불일치

FactoryGirl.define do 
    factory :user do 
    sequence(:first_name) { |n| "first_name#{n}" } 
    sequence(:last_name) { |n| "last_name#{n}" } 
    end 

    factory :request do 
    association :user, :factory => :user, :is_walker => false 
    end 
end 

내 코드 만 연결이있을 때 중단 할 것, 그리고 다음은 :user에서 세터를 호출하려고 대략 같은

3) Invitation has a correctly formed body 
    Failure/Error: request = FactoryGirl.create(:request, ....) 
    NoMethodError: 
    undefined method `user=' for #<Request:0x007f86b6a87890> 

그리고 내 factories.rb 코드 보인다. 왜 이것이 일어날 수 있습니까? 요청 공장 :

여기에 내가

gem 'rails', '3.0.7' 
gem 'rspec-rails', '2.6.1' 
gem 'spork', '0.9.0.rc5' 
gem 'factory_girl_rails', '1.0' 
+2

질문에 도움이 될 수는 없지만 질문 제목이 문맥에서 우스운 것처럼 들리므로 +1하십시오. – darvids0n

답변

0

을 사용하고 버전은이 협회 또는 만들려고 어떤 시험이 어떤 시험 정말입니까? 나는 결코 spork를 사용하지 못했다. 그러나 그것이 사실이라면 spork/factory_girl이 "Request"를 통해 싸우고 있는지 궁금하게 생각한다.

6

Spork.each_run 블록에 require 'factory_girl_rails이 있습니까? spec_helper.rb에서

gem "factory_girl_rails", :require => false 

: 그것은 도움이 될 것입니다하지만해볼 가치의

Spork.each_run do 

    require 'factory_girl_rails' 
    FactoryGirl.factories.clear 
    FactoryGirl.reload 

end 

확실하지 경우

나는 내 gemfile에서 다음을 사용합니다.

+1

'FactoryGirl.factories.clear'와'FactoryGirl.reload'는 필요하지 않습니다 (최소한 최신 factory_girl에서). –

+0

좋은, 잘 작동합니다. – mhenrixon

관련 문제