我正在Visual Studio(TestTools)中实现一些测试用例。我必须在其中一些中重用一个通用逻辑。所以我决定将这个逻辑提取到一个辅助方法中。从这些辅助方法调用Assert.AreEqual(..)是一种好习惯吗? 例如(已编辑):
[TestMethod]
public void myTest()
{
...
helperMethod();
...
}
private void helperMethod(int a)
{
...
Assert.AreEqual("x", str);
...
Assert.AreEqual("y", str2);
...
}
答案 0 :(得分:2)
在我看来,单元测试的最佳实践仍然存在争议,因此我确信您可以从双方获得有关这种情况下最佳实践的反馈,并且我将不会权衡。< / p>
话虽如此,您是否考虑过从辅助方法返回值然后在主单元测试中断言?
此外,我个人的偏好是将所有帮助方法标记为私有/内部和/或将它们放在单独的帮助程序类中。
最后,我在您的示例中可以看到您没有向助手方法传递任何参数。这可能只是一个草率的书面例子,但如果不让我指出大多数人都同意的最佳做法。永远不要让单元测试方法或辅助方法依赖于类值。换句话说,所有单元测试方法及其助手都应该尽力pure。