应该在没有TestMethod属性的方法中使用Assert吗?

时间:2013-06-30 02:58:31

标签: c# visual-studio unit-testing testing

我正在接受C#中的遗留代码和单元测试此代码只是不起作用。

让我通过以下代码解释。

[TestMethod]
public void SampleTest() {
    ...
    // Parallel call of this method via Threading
    TestUtil(args);
    ...
}

private void TestUtil(...) {
    ...
    Assert.IsTrue(Condition1);
    Assert.IsTrue(Condition2);
}

当我在Visual Studio中运行 SampleTest 时,不是将测试标记为失败(因为某些条件失败),VS会在QTAgent.exe中抛出异常。

你知道为什么QTAgent.exe在这种情况下崩溃而不是测试失败吗?

2 个答案:

答案 0 :(得分:2)

我想说将断言放入测试类中的私有方法是完全没问题的。 私有方法基本上可以被视为逻辑上属于main方法的代码,但是为了可读性或代码重用而被分解。 如果多个测试之间的断言相同,我通常会将断言置于私有方法中

答案 1 :(得分:0)

我找到了答案。它与Assert或TestMethod或线程无关。由于缺少库而引发了异常。

因此,如果可能的话,我想删除这个问题。