Я использую Rails 3.1.0rc8, Factory Girl 2.1.2, Factory Girl Rails 1.2.0 и RSpec 2.7.0.
Я считаю, что ошибка, с которой я столкнулся, связана с проблемами, обсуждаемыми в этой теме .
У меня есть спецификация, которая выглядит следующим образом:
спецификация / интеграция / 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
Буду очень признателен за помощь в понимании этой проблемы.