В этой статье показано, как использовать JUnit 5 @repeatedtest
для повторения теста указанное количество раз.
P.S Протестировано с JUnit 5.5.2
1. @Повторный тест
1.1 Метод тестирования @repeatedtest
аналогичен обычному методу @Test
, с тем же жизненным циклом.
package com.mkyong.repeated; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertEquals; public class RepeatedSample1Test { @BeforeAll static void beforeAll() { System.out.println("beforeAll"); } @AfterAll static void afterAll() { System.out.println("afterAll"); } @BeforeEach void beforeEach() { System.out.println("beforeEach"); } @AfterEach void afterEach() { System.out.println("afterEach"); } // Repeat this test 3 times @RepeatedTest(3) void math_add_1() { System.out.println("Run math_add_1()"); assertEquals(2, 1 + 1); } @RepeatedTest(3) void math_add_2() { System.out.println("Run math_add_2()"); assertEquals(2, 1 + 1); } }
Вывод в среде IDE.
Вывод в консоль.
beforeAll beforeEach Run math_add_1() afterEach beforeEach Run math_add_1() afterEach beforeEach Run math_add_1() afterEach beforeEach Run math_add_2() afterEach beforeEach Run math_add_2() afterEach beforeEach Run math_add_2() afterEach afterAll
2. Пользовательское имя теста
2.1 Мы можем настроить имя метода @repeatedtest
.
package com.mkyong.repeated; import org.junit.jupiter.api.RepeatedTest; import static org.junit.jupiter.api.Assertions.assertEquals; public class RepeatedSample2Test { @RepeatedTest(3) void math_add_1() { System.out.println("Run math_add_1()"); assertEquals(2, 1 + 1); } @RepeatedTest(value = 3, name = RepeatedTest.LONG_DISPLAY_NAME) void math_add_2() { System.out.println("Run math_add_2()"); assertEquals(2, 1 + 1); } @RepeatedTest(value = 3, name = "{displayName} - ABC - {currentRepetition}/{totalRepetitions}") void math_add_3() { System.out.println("Run math_add_3()"); assertEquals(2, 1 + 1); } }
Вывод в среде IDE.
Примечание
{Имя дисплея}
: Название метода тестирования.{{текущее повторение}
: Текущее количество повторений.{{общее количество повторений}
: Общее количество повторений.
3. Повторение В
3.1 Мы также можем ввести Информацию о повторении
в качестве параметра и получить доступ к метаданным @repeatedtest
.
package com.mkyong.repeated; import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.RepetitionInfo; import static org.junit.jupiter.api.Assertions.assertEquals; public class RepeatedSample3Test { @RepeatedTest(3) void math_add_4(RepetitionInfo repetitionInfo) { System.out.println("Repetition #" + repetitionInfo.getCurrentRepetition()); assertEquals(3, repetitionInfo.getTotalRepetitions()); } }
Вывод в консоль.
Repetition #1 Repetition #2 Repetition #3
Скачать Исходный Код
Оригинал: “https://mkyong.com/junit5/junit-5-repeated-tests/”