C# 辅助方法中的断言

C# 辅助方法中的断言,c#,.net,testing,C#,.net,Testing,我正在VisualStudio(TestTools)中实现一些测试用例。我必须在其中一些中重用一个通用逻辑。所以我决定将这个逻辑提取到一个helper方法中。从这些帮助器方法调用Assert.AreEqual(..)是一种很好的做法? 例如(已编辑): 在我看来,单元测试的最佳实践仍在讨论中,因此我相信您可能会从双方那里得到关于此场景中最佳实践是什么的反馈,我将避免对此进行权衡 话虽如此,您是否考虑过从helper方法返回值,然后在主单元测试中断言 此外,我个人的偏好是将所有助手方法标记为pri

我正在VisualStudio(TestTools)中实现一些测试用例。我必须在其中一些中重用一个通用逻辑。所以我决定将这个逻辑提取到一个helper方法中。从这些帮助器方法调用Assert.AreEqual(..)是一种很好的做法? 例如(已编辑):


在我看来,单元测试的最佳实践仍在讨论中,因此我相信您可能会从双方那里得到关于此场景中最佳实践是什么的反馈,我将避免对此进行权衡

话虽如此,您是否考虑过从helper方法返回值,然后在主单元测试中断言

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


最后,我可以在您的示例中看到,您没有向helper方法传递任何参数。这可能只是一个仓促编写的示例,但如果不是这样,请让我指出一个大多数人都同意的最佳实践。决不要让单元测试方法或助手方法依赖于类值。换言之,所有单元测试方法及其助手都应该尽力做到这一点。

我已经编辑了代码。我在代码中使用了private。我在helper方法中使用参数。问题是,我必须将服务器断言检查到此helper方法中,并返回一个不可行的值(除非创建了自定义对象)。此外,创建自定义对象以及任何支持单元测试的可靠代码都没有错。
[TestMethod]
public void myTest() 
{
    ...
    helperMethod();
    ...
}

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