我正在尝试在生产代码中找到断言的最佳做法,但我很惊讶我找到的信息很少。生产代码中的NUnit断言
首先是否可以在生产代码中声明断言?
其次,我发现内置的Debug.Assert for .NET本质上会自动禁用生产代码,并且实际上只能在开发环境中运行。这是真的吗,NUnit是否也有内置的这个功能?
例如,如果我在生产代码中具有以下内容,断言将被忽略?
var sortedActuals = actuals.OrderByDescending(a =>
{
Assert.That(a.GLPeriodDateTime, Is.Not.Null, "GLPeriodDateTime was null when it should not be");
return a.GLPeriodDateTime.Value;
})
你试过了吗?结果是什么? – mason
我不会在生产代码中使用NUnit声明。如果你想检查你可以提出自己的例外或使用代码合同。在这种情况下,它看起来像'a'的类应该确保'GLPeriodDateTime'永远不为空。 – Lee