我应该测试模型之间的关联吗?
Should I test associations between models?
我应该为两个模型之间的关联编写测试吗?
我刚刚在我的第一个 Rails 项目中发现了这段代码,这似乎不正确,因为没有关联会导致错误而不是失败。
那么我应该如何以及在哪里正确地测试它们呢?
require 'test_helper'
class VocabTest < ActiveSupport::TestCase
test "Must have 'belongs_to user' association" do
assert @vocab.user
end
end
我倾向于测试模型之间的关联以确认我已正确完成所有设置。测试关联的一个非常简单的方法是 shoulda.
您还可以使您的测试文件更具可读性
require 'test_helper'
class VocabTest < ActiveSupport::TestCase
test "associations" do
should belong_to :user
end
end
不,您不需要专门对关联进行单元测试,即使您的目标是完全测试您的应用程序(您应该这样做)。协会只是实施;它们的存在是为了支持行为,并且测试该行为总是完全测试关联的存在。关联的单独单元测试不会增加任何价值。
如果您正在实践测试驱动开发,并且在实现某些需要关联的行为的过程中,您可能会发现为关联编写单元测试并使其通过,然后 return 完成行为测试。我通常不觉得我需要这个,因为在 Rails 中添加关联到现有模型,甚至添加新模型都非常简单,但有些人喜欢中间测试的支持。但是,一旦实现了行为,我就会删除关联测试,就像删除任何冗余测试一样。
我在 this answer and 中写了更多关于直接测试 ActiveRecord 模型各个方面的有用性的文章。
我应该为两个模型之间的关联编写测试吗?
我刚刚在我的第一个 Rails 项目中发现了这段代码,这似乎不正确,因为没有关联会导致错误而不是失败。 那么我应该如何以及在哪里正确地测试它们呢?
require 'test_helper'
class VocabTest < ActiveSupport::TestCase
test "Must have 'belongs_to user' association" do
assert @vocab.user
end
end
我倾向于测试模型之间的关联以确认我已正确完成所有设置。测试关联的一个非常简单的方法是 shoulda.
您还可以使您的测试文件更具可读性
require 'test_helper'
class VocabTest < ActiveSupport::TestCase
test "associations" do
should belong_to :user
end
end
不,您不需要专门对关联进行单元测试,即使您的目标是完全测试您的应用程序(您应该这样做)。协会只是实施;它们的存在是为了支持行为,并且测试该行为总是完全测试关联的存在。关联的单独单元测试不会增加任何价值。
如果您正在实践测试驱动开发,并且在实现某些需要关联的行为的过程中,您可能会发现为关联编写单元测试并使其通过,然后 return 完成行为测试。我通常不觉得我需要这个,因为在 Rails 中添加关联到现有模型,甚至添加新模型都非常简单,但有些人喜欢中间测试的支持。但是,一旦实现了行为,我就会删除关联测试,就像删除任何冗余测试一样。
我在 this answer and