如果在清理期间抛出异常,则强制单元测试失败

时间:2017-03-22 08:38:11

标签: c# unit-testing

我在我的代码中注意到,创建了一个从未正确清理过的新thread的类。该段代码的单元测试成功,但在控制台上有一个warning表示已发生System.AppDomainUnloadedException。可以使用以下代码段重现此内容

    [TestMethod]
    public void StartNewThread_ThreadNotStopped_StillSucceeds()
    {
        var thread = new Thread(DoNothingForEver);
        thread.Start();
    }

    private void DoNothingForEver()
    {
        while (true){/* do nothing */}
    }

在开发此类单元测试时,开发人员有责任确保不会发生此类异常,但在工作中我发现这种情况经常发生。更糟糕的是,我亲眼目睹了当重构成功单元测试的代码时,单元测试仍然会成功,但会引发一个未被注意的exception。在深入研究这个问题时,很明显重构的代码没有正常工作,因此,单元测试几乎没有附加价值。

有什么方法可以检测我的测试项目,以致MsTest在这种情况下失败?

0 个答案:

没有答案