Ich habe einen folgenden has_many
/belongs_to
Modell Verbände in meiner App:Schienen: Wie wird ein Komponententest für mein Modell mit geschachtelten Attributen eingerichtet?
User
< Company
< Deed
< Subtransaction
,
wo Deed
accepts_nested_attributes_for
(und validates_associated
) :subtransactions
. Ich möchte meine Modellvalidierungen mit Minitest
und fixtures
testen.
Ich habe meinen Test explizit eingerichtet, indem ich den Hash der Parameter definiert habe, die an mein Modell gesendet wurden.
My Model-Test:
class DeedTest < ActiveSupport::TestCase
def setup
@user = users(:dagobert)
@newco = companies(:newco)
params = { :deed =>
{
:date => deeds(:inc_new).date,
:subtransactions_attributes =>
{ '1' =>
{
:shareholder_name => "Shareholder 1",
:num_shares => subtransactions(:new_subt1).num_shares
},
'2' =>
{
:shareholder_name => "Shareholder 2",
:num_shares => subtransactions(:new_subt2).num_shares
}
}
}
}
@deed = @newco.deeds.new(params[:deed])
end
<my tests here>
end
Ist dies der richtige Weg, meinen Test setup
? Oder gibt es elegante oder Rails-ähnliche Methoden?