0

我有我的應用程序由下列has_many/belongs_to模型關聯:Rails:如何爲嵌套屬性的模型設置單元測試?

User < Company < Deed < Subtransaction

其中Deedaccepts_nested_attributes_for(和validates_associated:subtransactions。我希望使用Minitestfixtures來測試我的模型驗證。

我已經通過明確定義提交給我的模型的參數的散列來設置我的測試。

我的模型試驗:

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 

這是setup我測試的正確方法?還是有更優雅或類似Rails的方法?

回答

1

您可以使用setup來定義您的設置方法。它會在測試之前運行。

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