xUnit.net and Debug.Assert

本文关键字:Assert Debug and net xUnit | 更新日期: 2023-09-27 17:53:39

有人知道如何停止xUnit吗?当被测代码触发失败的System.Diagnostics.Debug.Assert时抛出Xunit.SDK.TraceAssertException

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

xUnit.net and Debug.Assert

根据这个答案,您应该能够将以下内容添加到您的App中。配置单元测试文件:

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

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

我不认为你可以避免你有xunit断言的问题,如果你是制造状态调试断言异常会在你的测试中触发,所以如果意图是测试公共api的我不会使用Debug.Assert,而是使用参数验证类型异常,如果意图是测试私有内部代码,有大量的文献在那里建议这不是一个好主意。