генератор тестовых примеров junit - PullRequest
10 голосов
/ 05 ноября 2010

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

Thx

Ответы [ 5 ]

6 голосов
/ 05 ноября 2010

Parasoft's JTest - это коммерческий инструмент, но он вполне подходит для:

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

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

2 голосов
/ 05 ноября 2010

Вы смотрели на подходят ?

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

Там много хороших ресурсов .

0 голосов
/ 05 июня 2018

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

    }

}
0 голосов
/ 05 ноября 2010

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

0 голосов
/ 05 ноября 2010

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

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

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

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

один для JUnit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...