java - JUnit 可以对所有字符串进行断言吗?

标签 java testing junit mocking

JUnit(或任何其他测试框架)是否有任何方法可以对方法的所有可能输入进行断言?

类似于:

assertTrue(myClass.myMethod(anyString))

编辑: 我意识到有无数种可能的输入,但我想我想知道是否有一些框架可以静态分析方法并检测在所有可能的情况下都会达到某个结果。例如。 public static boolean myMethod(String input) { return true; 总是返回 true 吗?

最佳答案

不,实际上有无限数量的可能输入。
你的工作是将它们分成具有(预期的)等效行为的测试用例。 如果存在这样的人工智能,那么它也可以编写要测试的代码。

存在测试用例生成器,可以自动创建测试用例,但它们大多没用。他们产生大量的测试用例,而且主要只接触代码,而不是测试一个预期的结果。

这样的工具提高了测试覆盖率,但是是以一种非常可疑的方式。 (我认为这是非法提高测试覆盖率:你应该测试,而不是触摸!)

这样的工具是CodePro来自谷歌。使用 CodePro-> 测试用例生成(例如在 Eclipse 中) 一开始你会有点惊讶,尝试一下也不错。然后你就会知道自动测试用例生成的局限性。

关于java - JUnit 可以对所有字符串进行断言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27111930/

相关文章:

java - 使用 EL 传递 `<portlet:param>` 中的值

Java 垃圾收集器 : PSYoungGen grows by 4 GB after Full GC

java - WebDriver 打印错误的条件语句

java - 如何从 JUnit 测试中判断 Eclipse 项目是否打开?

java - JDBC 连接的 JUNIT 测试用例

java - Junit:在没有实例的情况下调用私有(private)方法

java - 在iReport 5.6.0 : Why is the first record missing from my table element when i use JRBeanCollectionDataSource?中

java - 通过网络解耦 UI 和计算的简单示例

testing - Geb 和 Spock - If/Then/Else 逻辑 - 如何检查记录并在记录存在时做一件事,如果不存在则继续

python - 如何测试返回某些东西并有副作用的函数?