尽管有阻止执行单元测试的方法,但是检查失败的单元测试的价值是什么?
我将使用一个简单的示例:区分大小写。当前代码区分大小写。该方法的有效输入是“ Cat”,它将返回Animal.Cat的枚举。但是,该方法的所需功能不应区分大小写。因此,如果所描述的方法通过“ cat”传递,则它可能返回类似于Animal.Null而不是Animal.Cat的内容,并且单元测试将失败。尽管只需进行简单的代码更改即可完成此工作,但更复杂的问题可能需要花费数周的时间才能解决,但是使用单元测试来确定错误可能不是那么复杂。
当前正在分析的应用程序具有4年有效的代码。但是,最近有关单元测试的讨论发现了代码中的缺陷。有些只需要显式的实现文档(例如是否区分大小写),或者不根据当前调用方式执行该错误的代码。但是可以执行特定的场景来创建单元测试,这将导致错误被看到并且是有效的输入。
在有人能够修正该代码之前,检查行使该错误的单元测试的价值是什么?
是否应该使用忽略,优先级,类别等标记此单元测试,以根据执行的测试确定构建是否成功?最终,一旦有人对其进行了修复,就应该创建单元测试来执行代码。
一方面,它表明已识别的错误尚未修复。另一方面,在日志中可能会出现数百个失败的单元测试,并且很难找出应该失败的测试与由于代码检入而导致的失败。