junit测试用例生成器

有没有一个很好的工具可以根据一些原始模板自动生成jUnit测试用例? 这样,测试用例可以由没有大量Java或jUnit背景的工程师编写。 作为背景信息,这是用于黑盒测试。 如果有一些其他替代方法来运行回归测试而不是使用jUnit,我也很感激听到它。

谢谢

另一个替代方案是创建一个更高级别的特定于域的语言,让工程师能够对他们的测试进行编码.Groovy是一种简单的方法(google groovy和DSL),或者在频谱的另一端使用JavaCC的。

Parasoft的JTest是一个商业工具,但它非常适合:

  • 为现有代码库生成unit testing
  • 创建回归测试

对于免费解决方案,您可以尝试CodePro Analytix Eclipse插件的JUnit生成function。

你看起来合适吗?

Fit允许您创建一个html表,然后在junit测试中使用这些值,根据测试结果将表格元素变为红色或绿色。 它与JUnit一起打包。 你需要连接夹具以将表格转换为java,但是有支持。

周围有很多好的资源 。

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

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

测试代码以分层方式生成。 生成一个主要测试套件,它调用各个类的测试套件。 单个类测试套件是通过收集该类的测试方法而形成的。

测试数据也以XML格式分层组织,对应于测试代码的结构。 此XML文件实际上包含每种方法的所有unit testing用例的数据。 JTestCase有助于遍历每个方法的所有测试用例并执行一个

一个人反对JUnit。

用Java生成测试用例的示例代码:

import java.util.ArrayList; import java.util.List; public class JunitGenerator { public static List 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("}"); } }