【发布时间】:2011-12-01 22:58:12
【问题描述】:
我正在使用 Rails 3.1.0rc8、Factory Girl 2.1.2、Factory Girl Rails 1.2.0 和 RSpec 2.7.0。
我认为我遇到的错误与this thread 上讨论的问题有关。
我有一个看起来像这样的规范:
spec/integration/my_integration_spec.rb:
require 'spec_helper'
describe 'A Workflow' do
before(:all) do
@reseller = Factory(:reseller)
@product = Factory(:product, :reseller => @reseller)
end
describe 'A feature' do
it 'Does something' do
end
describe 'A sub-feature' do
before(:all) do
# Error!
@product.sold_at << Factory(:outlet, :reseller => @reseller)
end
it 'Does something' do
end
end
end
运行此规范会导致子功能出现异常:
Failure/Error: @product.sold_at << Factory(:outlet, :reseller => @reseller)
ActiveRecord::AssociationTypeMismatch:
Reseller(#90828680) expected, got Reseller(#59351220)
有趣的是,当我将嵌套前挂钩的内容移动到主前挂钩时,不会发生此错误。
require 'spec_helper'
describe 'A Workflow' do
before(:all) do
@reseller = Factory(:reseller)
@product = Factory(:product, :reseller => @reseller)
# No error!
@product.sold_at << Factory(:outlet, :reseller => @reseller)
end
describe 'A feature' do
it 'Does something' do
end
describe 'A sub-feature' do
it 'Does something' do
end
end
end
非常感谢您对理解此问题的任何帮助。
【问题讨论】:
标签: ruby-on-rails-3 factory-bot rspec-rails