我有一些用RSpec编写的测试各种模型的规格。我使用Factory Girl来生成测试对象。rspec测试通过隔离,但在与其他测试运行时失败
现在最奇怪的事情发生了:
当我运行rspec spec/models/specific_model_spec.rb
---这通过在规范所有的测试
然而,当我运行rspec spec/models
---在这个规范每一个测试失败指的是一个无效关联正在创建(通过工厂)
工厂创建的关联显然是有效的,因为单独运行测试也会显示。
什么可能导致此行为?
更新:
与其他规格一起运行规范时出现错误(误差为每个故障相同):
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)>'
的project factory
在另一个规范被测试并通过细...
更新2: 使用的相关工厂代码是如下:
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
让我们看看错误。 –
添加了该错误。 – ErwinM
谢谢。和你的工厂代码? –