使用 NUnit 时如何处理契约违规

How to handle contract violations when using NUnit

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

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

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

但如果它发生在测试代码中 - 如何处理这种情况并使测试失败(因为如果它是未处理的异常就会失败)?

解决方案是安装 Code Contracts for .NET 扩展。在它的参数中你可以select是否抛出异常。