xUnit.net和Debug.Assert

时间:2014-03-26 21:31:38

标签: c# unit-testing assertions xunit.net

当被测代码触发失败的Xunit.SDK.TraceAssertException时,是否有人知道如何阻止xUnit.Net抛出System.Diagnostics.Debug.Assert

我经常在DEBUG模式下使用警卫来提醒其他开发人员他们错误地使用了API。但是,由于xUnit.Net抛出此异常,它会破坏我的单元测试。

2 个答案:

答案 0 :(得分:0)

我通常只将调试断言用于内部/私有代码,其中不存在来自变异状态的可能的副作用。这种代码不会在我的公共API中公开,因此我不会对其进行单元测试。

如果您正在制造调试断言异常将在您的测试中触发的状态,我认为您可以避免使用xunit断言时遇到的问题,因此,如果您打算测试公共API,那么我不会使用Debug.Assert,而是使用参数验证类型例外,如果打算测试私有内部代码,那么有大量文献表明这不是一个好主意。

答案 1 :(得分:0)

根据this answer的引用,您应该能够将以下内容添加到您的“ App.config”单元测试文件中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.diagnostics>
        <assert assertuienabled="false"/>
    </system.diagnostics>
</configuration>