У ЮН 5 TestInfo
діє замінна для правила TestName від JUnit 4.
З документації:
TestInfo використовується для введення інформації про поточний тест або контейнер до методів @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BeforeAll та @AfterAll.
Для отримання назви методу поточного виконаного тесту у вас є два варіанти: String TestInfo.getDisplayName()
і
Method TestInfo.getTestMethod()
.
Для отримання лише імені поточного методу тестування TestInfo.getDisplayName()
може бути недостатньо, оскільки відображуване ім'я методу тестування за замовчуванням methodName(TypeArg1, TypeArg2, ... TypeArg3)
.
Дублювання імен методів у @DisplayName("..")
не потрібна хороша ідея.
В якості альтернативи ви можете використовувати
TestInfo.getTestMethod()
цей повернення Optional<Method>
об'єкта.
Якщо метод пошуку використовується в тестовому методі, вам навіть не потрібно тестувати Optional
обернене значення.
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.TestInfo;
import org.junit.jupiter.api.Test;
@Test
void doThat(TestInfo testInfo) throws Exception {
Assertions.assertEquals("doThat(TestInfo)",testInfo.getDisplayName());
Assertions.assertEquals("doThat",testInfo.getTestMethod().get().getName());
}