JUnit测试用例生成器

10

有没有一款好的工具可以根据一些基本模板自动生成jUnit测试用例?这样,那些没有很多Java或jUnit背景的工程师也可以编写测试用例。作为背景信息,这是用于黑盒测试。如果有其他替代方案可用于运行回归测试,则我也很乐意了解。

谢谢

5个回答

6

Parasoft的JTest是一款商业工具,但非常适用于:

  • 为现有代码库生成单元测试
  • 创建回归测试

如果需要免费解决方案,可以尝试CodePro Analytix Eclipse插件的JUnit生成功能。


2

您看过fit了吗?

Fit允许您制作一个HTML表格,然后在Junit测试中使用这些值,根据测试结果将表格元素变成红色或绿色。它与JUnit捆绑在一起。您需要连接装置以将表格元素转换为Java,但有相应的支持。

有很多好的资源可以参考。


1

用于在Java中生成测试案例的示例代码:

import java.util.ArrayList;
import java.util.List;

public class JunitGenerator {

    public static List<String> s = new ArrayList();

    static String clname="employee";
    static String clBigname="Employee";

    public static void main(String[] args) {

        s.add("String;name;Name");
        s.add("int;age;Age");
        s.add("Boolean;isAge;IsAge");
        s.add("Double;amount;Amount");

        System.out.println("import static org.junit.Assert.*;");
        System.out.println("import static org.junit.Assert.assertEquals;");

        System.out.println("import org.junit.Test;");
        System.out.println();
        System.out.println("public class "+clBigname+"Test{");
        System.out.println(""+clBigname+" "+clname+"=new "+clBigname+"();");

        for(String s1:s) {
            String[] a=s1.split(";");
            System.out.println("@Test");
            System.out.println("public void get"+a[2]+"Test(){");
            if(a[0].equalsIgnoreCase("int"))
                System.out.println(a[0]+" "+a[1]+" =0"+";");
            if(a[0].equalsIgnoreCase("String"))
                System.out.println(a[0]+" "+a[1]+" =null"+";");
            if(a[0].equalsIgnoreCase("Double"))
                System.out.println(a[0]+" "+a[1]+" =0.0"+";");
            if(a[0].equalsIgnoreCase("Boolean"))
                System.out.println(a[0]+" "+a[1]+" =false"+";");
            System.out.println(""+ clname +".set"+a[2]+"("+a[1]+");");
            if(!a[0].equalsIgnoreCase("String"))
                System.out.println("assertNotNull("+ clname +".get"+a[2]+"());");
            if(a[0].equalsIgnoreCase("String"))
                System.out.println("assertEquals("+a[1]+","+ clname +".get"+a[2]+"());");
            System.out.println("}");
        }

        System.out.println("}");

    }

}

Java生成测试用例的示例程序 - Prashanth

0

这里有一个典型的工具: http://mediakey.dk/~cc/generate-junit-tests/

TestGen4J是一组开源工具,可以自动生成单元测试用例。TestGen4J可以从您自己的Java类文件或源文件中自动生成JUnit测试用例。它的主要重点是对传递给方法的参数进行边界值测试。它使用在用户可配置的XML文件中编写的规则,定义数据类型的边界条件。测试代码通过JTestCase与测试数据分离。

测试代码以分层方式生成。生成一个主测试套件,调用各个类的测试套件。单个类测试套件由该类的测试方法集合形成。

测试数据也以XML格式按照测试代码的结构分层组织。这个XML文件实际上包含每个方法的所有单元测试用例的数据。JTestCase帮助循环遍历每个方法的所有测试用例,并逐个执行它们来进行JUnit测试。


源代码不可用于分析生成测试用例。 - bob

0

另一个选择是创建一种更高层次的特定领域语言,使工程师能够以其为编码测试。Groovy是实现这一点的简单方式(谷歌Groovy&DLS),或者使用JavaCC到另一个极端。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接