В Junit набор тестов позволяет нам объединять все тестовые случаи из нескольких классов в одном месте и запускать их вместе.
Чтобы запустить тест набора, необходимо аннотировать класс с помощью нижеуказанных аннотаций:
- @Runwith (Suite.class)
- @SuiteClasses (test1.class, test2.class ……) или
@ Suite.SuiteClasses ({test1.class, test2.class ……})
С указанными выше аннотациями все тестовые классы в наборе начнут выполняться один за другим.
Шаги для создания Test Suite и Test Runner
Шаг 1) Создайте простой тестовый класс (например, MyFirstClassTest) и добавьте метод, помеченный @test.
Шаг 2) Создайте еще один тестовый класс для добавления (например, MySecondClassTest) и создайте метод с аннотацией @test.
Шаг 3) Для создания testSuite необходимо сначала аннотировать класс с помощью @RunWith (Suite.class) и @SuiteClasses (class1.class2… ..).
Шаг 4) Создайте класс Test Runner для запуска нашего набора тестов, как указано ниже;
Объяснение кода:
- Строка кода 8: Объявление основного метода теста класса, который будет запускать наш тест JUnit.
- Строка кода 9: Выполнение тестовых случаев с использованием JunitCore.runclasses, который принимает имя тестового класса в качестве параметра (В приведенном выше примере вы используете TestSuiteExample.class, показанный на шаге 3).
- Строка кода 11: обработка результата с использованием цикла for и распечатка ошибочного результата.
- Строка кода 13: распечатка успешного результата.
Выходные данные: Вот выходные данные, которые показывают успешное тестирование без следа сбоев, как показано ниже:
Пример тестового набора JUnit
Рассмотрим более сложный пример
JunitTest.java
JunitTest.java — это простой класс, аннотированный аннотациями @RunWith и @Suite . Вы можете перечислить количество классов в наборе в качестве параметров, как указано ниже:
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
SuiteTest1.java
SuiteTest1.java — это тестовый класс, имеющий тестовый метод для вывода сообщения, как показано ниже. Вы будете использовать этот класс как набор в вышеупомянутом классе.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage() { System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage() { message = "Hi!" + message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
SuiteTest2.java
SuiteTest2.java — это другой тестовый класс, похожий на SuiteTest1.java, имеющий тестовый метод для распечатки сообщения, как показано ниже. Вы будете использовать этот класс как набор в JunitTest.java .
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
Вывод
После выполнения JunitTest .java, который содержит набор с test1.java и test2.java , вы получите следующий вывод:
Резюме
В этом учебном пособии вы подробно ознакомились с основами комплекта тестов и комплектов тестов на примере.
- Тестирование или автоматизация Тестирование — это программное обеспечение или набор программ, которые позволяют пользователю тестировать данные с несколькими входами и контролировать выполнение.
- Тестовый жгут фактически включает тестовую среду, которая выполняет всю работу по выполнению тестов с использованием библиотеки тестов и генерации отчета о тестировании.
- В Junit набор тестов позволяет нам объединять все тестовые наборы многих классов в одном месте и запускать его вместе.