簡體   English   中英

junit測試用例生成器

[英]junit test case generator

是否有一個好的工具可以基於某些原始模板自動生成jUnit測試用例? 這樣,測試案例就可以由沒有太多Java或jUnit背景的工程師編寫。 作為背景信息,這是用於黑匣子測試的。 如果除了使用jUnit之外還有其他替代方法來運行回歸測試,我也很高興聽到有關它的信息。

謝謝

Parasoft的JTest是一種商業工具,但它對以下方面非常有用

  • 為現有代碼庫生成單元測試
  • 創建回歸測試

對於免費的解決方案,您可以嘗試使用CodePro Analytix Eclipse插件的JUnit生成功能。

你看過合適嗎?

Fit使您可以制作一個html表,然后在junit測試中使用這些值,根據測試結果將表元素變為紅色或綠色。 它與JUnit打包在一起。 您確實需要連接固定裝置以將表要素轉換為Java,但是對此有支持。

周圍有很多好的資源

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

TestGen4J是開放源代碼工具的集合,這些工具會自動生成單元測試用例。 TestGen4J從您自己的Java類文件或源文件中自動生成JUnit測試用例。 它的主要重點是對傳遞給該方法的參數進行邊界值測試。 它使用在用戶可配置XML文件中編寫的規則,該規則定義了數據類型的邊界條件。 在JTestCase的幫助下,將測試代碼與測試數據分離。

測試代碼以分層方式生成。 生成一個主測試套件,該套件調用各個類的測試套件。 各個類的測試套件由該類的測試方法的集合組成。

測試數據還以XML格式分層組織,與測試代碼的結構相對應。 這個XML文件實際上具有每種方法的所有單元測試用例的數據。 JTestCase幫助循環遍歷每種方法的所有測試用例並執行一個

一個針對JUnit。

另一種選擇是創建一種對工程師來說有意義的高級領域特定語言,以便他們在其中編寫測試代碼。Groovy是一種簡便的方法(google groovy和DSL),或者在頻譜使用的另一端JavaCC。

用於生成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("}");

    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM