📜  在Java使用 Randoop API 生成 Junit 测试用例

📅  最后修改于: 2022-05-13 01:54:18.540000             🧑  作者: Mango

在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 C:\Users\public\Downloads\testbin;%RANDOOP_JAR% randoop.main.Main gentests --testclass=Message

Generate Test cases for java files (--classlist)

实现:在此示例中,我们将为编写在简单文本文件中的类文件列表生成测试用例,并将该文本文件作为 randoop 的输入提供。

语法

例子:

java -classpath %RANDOOP_JAR% randoop.main.Main gentests --classlist=C:\User\test1.txt

输出:

到目前为止,我们已经完成了使用 Randoop API 生成 Junit 测试用例的工作,这是我们的目标。下面的表格格式还列出了一些有用的操作集,以获取对 Randoop API 的支持。它们如下:

OperationAction 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]