в JUnit генератор тестового случая

есть ли хороший инструмент для автоматического создания тестовых случаев jUnit на основе некоторого примитивного шаблона? Это так, что тестовые случаи могут быть написаны инженерами, которые не имеют много Java или jUnit фона. В качестве справочной информации, это для тестирования черного ящика. Если есть какая-то другая альтернатива для запуска регрессионных тестов, чем использование jUnit, я также был бы признателен за это.

Thx

5 ответов


Другой альтернативой может быть создание языка домена более высокого уровня, который имеет смысл для инженеров, чтобы они кодировали свои тесты. Groovy-это простой способ сделать это (google groovy & DSL), или на другом конце спектра использовать JavaCC.


Parasoft это JTest является коммерческим инструментом, но это довольно хорошо для:

  • генерация модульных тестов для существующей кодовой базы
  • создание регрессионных тестов

для бесплатного решения вы можете попробовать функциональность поколения JUnit CodePro Analytix Eclipse-плагина.


вы смотрели fit?

Fit позволяет создать таблицу html, а затем использовать эти значения в тестах junit, превращая элементы таблицы в красный или зеленый в зависимости от результатов теста. Он поставляется в комплекте с JUnit. Вам нужно подключить прибор, чтобы перевести табличные элементы на java, но для этого есть поддержка.

там ряд хороших ресурсы плавающие вокруг.


вот типичный инструмент: http://mediakey.dk / ~cc / generate-junit-тесты/

TestGen4J-это набор инструментов с открытым кодом, которая автоматически генерирует тестовые единицы. TestGen4J автоматически генерирует тестовые случаи JUnit из ваших собственных файлов классов Java или исходных файлов. Его основной целью является осуществление граничного тестирования аргументов, переданных методу. Он использует правила, написанные в пользовательской XML-файл, который определяет граничные условия для тип данных. Тестовый код отделяется от тестовых данных с помощью JTestCase.

тестовый код генерируется иерархическим образом. Создается основной набор тестов, который вызывает наборы тестов отдельных классов. Набор тестов отдельного класса формируется коллекцией методов тестирования этого класса.

тестовые данные также организованы иерархически, в соответствии со структурой тестового кода, в формате XML. Этот XML-файл содержит данные для всех модульных тестов случаи для каждого метода. JTestCase помогает перебирать все тестовые случаи каждого метода и выполнять один

один против JUnit.


пример кода для генерации тестовых примеров в 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("}");

    }

}