当被测代码触发失败的Xunit.SDK.TraceAssertException
时,是否有人知道如何阻止xUnit.Net抛出System.Diagnostics.Debug.Assert
?
我经常在DEBUG模式下使用警卫来提醒其他开发人员他们错误地使用了API。但是,由于xUnit.Net抛出此异常,它会破坏我的单元测试。
答案 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>