unit-testing - 我应该如何处理我们不打算修复的错误的单元测试?

标签 unit-testing xunit.net

我们的代码库的很大一部分没有任何单元测试。我们一直在为添加的任何新代码编写单元测试,但我们现在才开始回过头来为现有代码添加单元测试。在为现有计算方法编写和运行单元测试时,我发现了一个错误:计算无法正确处理特定的输入边缘情况。

之前从未检测到该错误,因为它在应用程序中实际上无法访问;遇到错误的特定输入是一组输入的子集,这些输入很简单并直接处理,而不是发送到有些昂贵的计算方法。我的老板认为,由于应用程序无法解决该错误,因此不值得深入研究计算方法来修复它。

使用 XUnit,我应该如何最好地将这个错误标记为我们知道但选择不修复的问题?失败的测试会破坏我们的构建自动化,所以我不能就这样保留它。失败的输入当前正在作为 TheoryPropertyData 的一部分生成。

XUnit 有专门的指示器吗?我是否应该调整为 PropertyData 生成输入的方法以排除这种情况,添加注释解释原因,然后放入涵盖该情况的跳过的 Fact

最佳答案

您不应该让单元测试提供您的要求声明不支持的情况的输入数据。在这种情况下,您没有错误,您只是有要求,说明给定的输入不受支持并且被视为无效。

如果您确实愿意,您可以进行提供无效输入并断言失败的测试,前提是您选择明确要求此输入必须失败。如果您不想这样做,只需不要为您没有的用例创建测试即可。

关于unit-testing - 我应该如何处理我们不打算修复的错误的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27803157/

相关文章:

c# - 使用 Visual Studio 测试运行程序运行的 xUnit 测试的输出未显示在“输出”窗口中

c# - 应用 CQRS - 是否需要对薄读取层进行单元测试?

.net - 使用浮点值进行单元测试

unit-testing - 如何使用VS2015 Preview运行xUnit单元测试?

.net-core - Visual Studio 2017 单元测试项目与 xUnit 测试项目

c# - 类级别的 XUnit 理论类数据,而非方法

unit-testing - 仅使用 golang 中的标准库断言特定错误

c# - 等待以另一种方法启动的任务

Angular 2/4 karma 测试

.net - 是否有可以运行多线程以利用多核机器的 .NET 测试的测试运行器?