2011-08-08 8 views
6

Estoy intentando utilizar Factory Girl para RSpec con Spork. Cada vez que ejecuto mis pruebas sin spork, todo pasa, pero cuando lo ejecuto con Spork, todas las pruebas que intentan crear una instancia de una fábrica que depende de otra fábrica, fallan. Por ejemplo:Asociaciones de Factory Girl con Discrepancia de Spork

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

Y mi código factories.rb se ve más o menos así

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 

Mi código sólo parece romperse cuando existe una asociación, y luego se intenta llamar el organismo en el :user. por que podria estar pasando esto?

Estas son las versiones que estoy usando

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

No puedo ayudarte con tu pregunta, pero +1 porque el título de la pregunta suena realmente gracioso fuera de contexto. – darvids0n

Respuesta

0

¿Es realmente ninguna prueba que tienen una asociación o cualquier prueba que tratan de crear una solicitud: la fábrica? Nunca he usado spork, pero el hecho de que funcione sin él me hace preguntarme si spork/factory_girl está peleando por "Request" ... vale la pena investigarlo.

6

¿Tiene require 'factory_girl_rails en su Spork.each_run bloque?

que tengo uso el siguiente en mi Gemfile:

gem "factory_girl_rails", :require => false 

en spec_helper.rb:

Spork.each_run do 

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

end 

No está seguro de si le ayudará pero vale la pena un tiro.

+1

'FactoryGirl.factories.clear' y' FactoryGirl.reload' no son necesarios (al menos con la última factory_girl). –

+0

agradable, funciona bien – mhenrixon

Cuestiones relacionadas