関連するオブジェクトが正しいデータを共有してそれらを一致させるように、Factory Girl を使用して工場との関連付けを作成しようとしています。
オブジェクト A がオブジェクト C の 1 つのインスタンスに関連付けられており、オブジェクト B がオブジェクト C の別のインスタンスに関連付けられているシナリオに遭遇していますが、それらを両方ともオブジェクト C の同じインスタンスに関連付けたいと考えています。
Factory Girl - https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md 最新バージョンを使用
私のプロジェクトでやろうとしていることの簡単な例を次に示します。
FactoryGirl.define do
factory :neutral_position, class: FinancialAccounting::Update::Neutral::Position do
created_at { Time.now }
updated_at { Time.now }
factory :valid_neutral_position do
association :security, factory: :security
factory :valid_neutral_position_with_production_record do
association :position, factory: :position
# This modifies the created production account record so the attributes match.
FactoryGirl.modify do
factory :position, class: FinancialAccounting::Position do
association :security, factory: :security
end
end
end
end
end
end
:valid_neutral_position ファクトリで生成された同じセキュリティを指すように、関連する位置を変更しようとしていることに注意してください。このコードは現在、2 つの別個の証券を作成するため、ニュートラル ポジションは 1 つの証券に関連付けられ、ポジション ファクトリは別の証券に関連付けられます。
どうすればこれを達成できますか?この問題はアプリケーション全体で見られるため、これを理解することで、アプリケーションのテスト スイートが劇的に改善され、コードを DRY に保つことができます。