JUnit 5'te TestInfo
, JUnit 4'ten TestName kuralı için bir yedek değiştirme görevi görür.
Belgelerden:
TestInfo, geçerli test veya kapsayıcıyla ilgili bilgileri @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BeforeAll ve @AfterAll yöntemlerine enjekte etmek için kullanılır.
Yürütülen geçerli sınamanın yöntem adını almak için iki seçeneğiniz vardır: String TestInfo.getDisplayName()
ve
Method TestInfo.getTestMethod()
.
TestInfo.getDisplayName()
Test yöntemi varsayılan görünen adı olduğundan, yalnızca geçerli test yönteminin adını almak yeterli olmayabilir methodName(TypeArg1, TypeArg2, ... TypeArg3)
.
Yöntem adlarını çoğaltma@DisplayName("..")
iyi bir fikir değildir.
Alternatif olarak TestInfo.getTestMethod()
, bir Optional<Method>
nesne döndüren kullanabilirsiniz
.
Alma yöntemi bir test yönteminin içinde kullanılıyorsa, Optional
sarılmış değeri test etmeniz bile gerekmez .
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());
}