有人知道当被测代码触发失败的Xunit.SDK.TraceAssertException时,如何阻止xUnit.Net抛出System.Diagnostics.Debug.Assert吗
我经常在调试模式下使用卫士来提醒其他开发人员他们没有正确地使用API。然而,由于xUnit.Net抛出了这个异常,它破坏了我的单元测试。
发布于 2019-09-25 05:08:11
正如this answer所引用的,您应该能够将以下内容添加到`App.config的单元测试文件中:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.diagnostics>
<assert assertuienabled="false"/>
</system.diagnostics>
</configuration>发布于 2015-10-11 07:15:55
我通常只对内部/私有代码使用debug assert,在这些代码中不会有来自突变状态的可能副作用。这类代码不会在我的公共API中公开,因此我不会对其进行单元测试。
我认为,如果您正在制造在测试中触发调试断言异常的状态,那么您无法避免xunit断言的问题,因此,如果目的是测试公共api,我不会使用Debug.Assert,而是使用参数验证类型的异常,如果目的是测试私有内部代码,那么有大量的文献表明这不是一个好主意。
https://stackoverflow.com/questions/22673514
复制相似问题