2016-09-15 88 views
1

我在Visual Studio(TestTools)中实现了一些测试用例。我必须在其中一些中重用一个共同的逻辑。所以我决定把这个逻辑提取成一个辅助方法。从这些辅助方法调用Assert.AreEqual(..)是一个好习惯吗? 例如(编辑):断言辅助方法

[TestMethod] 
public void myTest() 
{ 
    ... 
    helperMethod(); 
    ... 
} 

private void helperMethod(int a) 
{ 
    ... 
    Assert.AreEqual("x", str); 
    ... 
    Assert.AreEqual("y", str2); 
    ... 
} 

回答

2

在我看来单元测试仍在争论因此最好的做法,我敢肯定,你可能会得到双方的有关最佳做法是在这种情况下,我有什么反馈我要避免称重英寸

这就是说你有没有考虑从辅助方法返回值,然后在主单元测试中声明?

此外,我个人的偏好是将所有助手方法标记为私人/内部和/或将它们放置在单独的助手类中。

最后,我可以在你的例子中看到你没有传递任何参数给你的帮助方法。这可能只是一个匆忙写下的例子,但如果不让我指出大多数人都同意的最佳做法。永远不要让单元测试方法或辅助方法依赖于类的值。换句话说,所有的单元测试方法和他们的助手应该尽力成为pure

+0

我编辑了代码。我在我的代码中使用私人。我在辅助方法中使用参数。问题是我必须检查serveral插入到这个帮助器方法并返回一个不可行的值(除非创建了自定义对象) – Jesus

+0

此外,创建自定义对象以及任何良好的SOLID代码以支持您的单元测试没有任何问题。 –