java - 是否存在允许一定比例的失败的测试框架?

标签 java unit-testing testing

当读取 question 时关于使用随机种子多次测试 Java 程序,测试一词在我脑海中引发了与单元测试的关联,但那可能不是那里进行的那种测试。

在我看来,在单元测试中引入随机性会被认为是不好的做法,但后来我开始考虑目前可能可以接受(小)失败百分比的情况。

例如,当 n > 3 时,代码每 10^n 一次就无法通过单元测试,并且您希望 n 逐渐变为无穷大,而测试不会变红,也许变黄。

另一个例子可能是系统范围的测试,其中大部分时间一切正常,但您仍然想限制/知道它们可能出错的频率。

所以我的问题是,是否有任何框架(全方位测试)可以被说服在大量/过多的重复测试中允许一定比例的失败?

最佳答案

您可以“说服”大多数测试框架允许部分失败,方法是执行您的“测试”而不是直接使用框架,而只是通过执行普通的旧条件(例如:if 语句)并记录失败的百分比。然后使用框架断言此百分比低于您的阈值。

如果您的测试是确定性的(这通常被认为是一件好事),那么另一种方法是测试当前行为,即使它是错误的,但要评论不正确的断言(通常是“正确”的答案应该是什么是)。如果这些测试失败,您可以查看评论。如果代码变得“正确”那么很好,请更新该断言。如果不是,那么决定行为的改变是比旧行为更好还是更坏,并采取相应的行动。随着时间的推移,这种方法让您有点像“拧紧螺丝”。

关于java - 是否存在允许一定比例的失败的测试框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5800073/

相关文章:

java - 调用rest api时,无论使用lomboks @Data,方法都是未定义的

java - 跨库项目共享文件

java - 使用 PImage 获取最新的文件夹(处理)

c# - 从 AutoFixture/AutoMaq 请求模拟时,NUnit 会忽略测试

javascript - 在各种浏览器中测试 jQuery 插件

java - 如何使用java获取转发域的IP地址

javascript - Zombie.js错误: Timeout: did not get to load all resources on this page

java - 如何在 JUnit 5 中使用字符串数组进行参数化

java - 为什么这些 BST 方法都不起作用?

android - 如何解决 "adb server is out of date"错误