在Java使用 Randoop API 生成 Junit 测试用例
在这里,我们将讨论如何使用 Randoop 生成Junit测试用例以及示例插图和当前实例的快照。 所以基本上在开发中 如果我们谈论测试用例,那么每个开发人员都必须手动编写测试用例。这被计入开发工作,也会增加项目和成本估算的时间。因此,我们可以借助一些 API 来减少编写测试用例所花费的时间。其中之一是Randoop 。 Java和 Randoop 是我们继续之前的先决条件。使用 randoop 生成测试用例需要基础知识,您需要了解 Junit 的基础知识来验证结果。
Randoop 的工作: Randoop 自动为您的类创建 Junit 测试。它是Java的单元测试生成器。 Randoop 使用反馈导向的随机测试生成来生成单元测试。这种技术伪随机但巧妙地为被测类生成方法/构造函数调用序列。
Randoop 通常会生成两种类型的测试用例:
- 错误揭示测试,用于检测当前代码中的错误。
- 可用于检测未来错误的回归测试。
Randoop 的运行:现在您的机器中有下载的 jar。要运行它,你必须像randoop.main.Main一样调用Randoop的main方法
第一步:首先你要设置randoop-all-4.2.6.jar和.jar的环境变量。
第 2 步:设置变量 open 终端并键入下面给出的行后,如果一切配置正确,则输出将是这样的。
java -classpath %RANDOOP_JAR% randoop.main.Main gentests --help
第 3 步:现在,为Java文件( -testclass)生成测试用例
- 创建一个示例Java文件来生成测试用例。
- 在这个例子中,我们使用–testclass选项来测试单个类文件。
例子
Java
public class Message {
private String message;
public Message(String message){
this.message = message;
}
public String printMessage(){
System.out.println(message);
return message;
}
}
第 4 步:使用javac 消息编译。 Java并将生成Message.class文件,randoop 将使用该文件生成测试用例。
第 5 步:现在打开终端/cmd 并键入如下命令:
句法:
java -classpath
例子:
java -classpath C:\Users\public\Downloads\testbin;%RANDOOP_JAR% randoop.main.Main gentests --testclass=Message
After running this command all the possible test cases of the Message.class file would be listed in the new Java files which is generated by Randoop named RegressionTest0, RegressionTest0.
Generate Test cases for java files (--classlist)
实现:在此示例中,我们将为编写在简单文本文件中的类文件列表生成测试用例,并将该文本文件作为 randoop 的输入提供。
语法:
java -classpath
例子:
java -classpath %RANDOOP_JAR% randoop.main.Main gentests --classlist=C:\User\test1.txt
输出:
到目前为止,我们已经完成了使用 Randoop API 生成 Junit 测试用例的工作,这是我们的目标。下面的表格格式还列出了一些有用的操作集,以获取对 Randoop API 的支持。它们如下: Operation Action performed –testjar= A jar file, all of whose classes should be tested –classlist= The file that lists classes under test –omit-classes= Do not test classes that match regular expression –omit-classes-file= The file containing regular expressions for methods to omit –testclass= The binary name of a class under test –methodlist= The file that lists methods under test –omit-methods= Do not call methods that match regular expression –omit-methods-file= File containing regular expressions for methods to omit –omit-field= Omit field from generated tests –omit-field-file= File containing field names to omit from generated tests –only-test-public-members= Only use public members in tests [default false] –silently-ignore-bad-class-names= Ignore class names specified by the user that cannot be found [default false] –flaky-test-behavior= What to do if a flaky test is generated [default OUTPUT] –nondeterministic-methods-to-output= Number of suspected nondeterministic methods to print [default 10]