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模型各个方面的用处。

相关问题