0

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 Deedaccepts_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?

Antwort

1

Sie können setup verwenden, um Ihre Setup-Methode zu definieren. Es wird vor dem Testen ausgeführt.

setup do 
    @data_form = { 
    title: Faker::Commerce.department, 
    description: Faker::Lorem.paragraph, 
    price: Faker::Commerce.price, 
    category_id: 1 
    } 
end