Tengo algunas especificaciones, escritas en RSpec, que prueban varios modelos. Uso Factory Girl para generar objetos para probar.prueba de rspec pasa de forma aislada, pero falla cuando se ejecuta con otras pruebas
Ahora lo más peculiar sucede:
Cuando corro rspec spec/models/specific_model_spec.rb
--- esto pasa todas las pruebas en esa especificación
Sin embargo, cuando corro rspec spec/models
--- todas las pruebas en esta especificación no se refiere a una asociación inválida que se crea (a través de una fábrica)
La asociación creada por la fábrica es obviamente válida, ya que también se muestra la ejecución de la prueba aisladamente.
¿Qué podría estar causando este comportamiento?
Actualización:
El error que consigo cuando se ejecuta la especificación junto con otras especificaciones (el error es el mismo para cada fallo):
6) StreamItem adds a stream_item to a project and consultant when an engagement is added
Failure/Error: @project = Factory.create(:project, :name => 'bar')
Validation failed: Customer is invalid
# ./spec/models/stream_item_spec.rb:44:in `block (2 levels) in <top (required)>'
El project factory
se prueba en otro spec y pasa fina ...
actualización 2: El código de fábrica pertinente utilizada es la siguiente:
Factory.define :manager, :class => User do |f|
f.sequence(:email) { |n| "bar#{n}@example.com" }
f.password "pass12"
f.sequence(:name) { |n| "Erwin#{n}" }
f.roles_mask 4
end
Factory.define :customer do |f|
f.sequence(:name) { |n| "foo customer#{n}" }
f.association :last_actor, :factory => :manager
f.account_id 1
end
Factory.define :project do |f|
f.sequence(:name) { |n| "foo project#{n}" }
f.association :manager, :factory => :manager
f.association :customer, :factory => :customer
f.start_date Date.today << 1
f.finish_date Date.today >> 2
f.status 1
f.association :last_actor, :factory => :manager
f.account_id 1
end
Veamos los errores. –
Agregó el error. – ErwinM
Gracias. ¿Y tu código de fábrica? –