5

我應該爲兩個模型之間的關聯編寫測試嗎?我應該測試模型之間的關聯嗎?

我剛剛在我的第一個Rails項目中找到了這段代碼,這看起來不正確,因爲沒有關聯會導致錯誤而不是失敗。 那麼如何以及在哪裏我會正確測試它們?

require 'test_helper' 

class VocabTest < ActiveSupport::TestCase 

    test "Must have 'belongs_to user' association" do 
    assert @vocab.user 
    end 
end 

回答

6

我傾向於測試模型之間的關聯以確認我已經完成了所有設置。測試關聯的一個非常簡單的方法是shoulda

你就可以讓你的測試文件更具可讀性,以及

require 'test_helper' 

class VocabTest < ActiveSupport::TestCase 

    test "associations" do 
    should belong_to :user 
    end 

end 
3

不,你不需要特別單元測試協會,即使你的目標是徹底測試你的應用程序(你應該)。協會只是實施;它們的存在是爲了支持行爲,並且測試該行爲總是充分地檢驗這些關聯的存在。單獨的關聯單元測試不會增加任何價值。

如果您正在實踐測試驅動開發,並且在實施需要關聯的某些行爲的過程中,您可能會發現編寫關聯的單元測試,獲取該關聯並返回以完成行爲測試。我通常不會發現我需要這個,因爲在Rails中添加與現有模型的關聯,甚至添加新模型都非常簡單,但有些人喜歡中間測試的支持。但是,一旦行爲被執行,我會刪除關聯的測試,因爲我會進行任何冗餘測試。

我寫了更多關於直接測試this answerthis answer中ActiveRecord模型各個方面的用處。

相關問題