如何在使用NUnit时处理违反合同的行为

本文关键字:合同 处理 NUnit | 更新日期: 2024-07-23 04:42:45

在VS社区版中使用NUnit3测试适配器运行以下测试(使用nunit-3.2)时:

class TestClass
{
    [Test]
    public void TestMethod()
    {
        Contract.Assert(false);
    }
}

它只是冻结了。通常情况下,如果它发生在正常应用程序运行期间,会弹出一个弹出窗口,其中包含失败还是忽略违规的选项。

但是,如果这种情况发生在测试的代码中,如何处理这种情况并使测试失败(就像如果是未处理的异常则会失败一样)?

如何在使用NUnit时处理违反合同的行为

解决方案是安装.NET扩展的代码契约。在其参数中,您可以选择是否引发异常。