Di JUnit 5 TestInfobertindak sebagai pengganti drop-in untuk aturan TestName dari JUnit 4.
Dari dokumentasi:
TestInfo digunakan untuk menyuntikkan informasi tentang uji atau wadah saat ini ke dalam metode @Test, @RepeatTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BeforeAll, dan @AfterAll.
Untuk mengambil nama metode dari tes yang dieksekusi saat ini, Anda memiliki dua opsi: String TestInfo.getDisplayName()dan
Method TestInfo.getTestMethod().
Untuk mengambil hanya nama metode pengujian saat ini TestInfo.getDisplayName()mungkin tidak cukup seperti nama tampilan standar metode pengujian methodName(TypeArg1, TypeArg2, ... TypeArg3).
Nama metode duplikat di@DisplayName("..") tidak perlu ide yang bagus.
Sebagai alternatif, Anda bisa menggunakan
TestInfo.getTestMethod()yang mengembalikan Optional<Method>objek.
Jika metode pengambilan digunakan di dalam metode pengujian, Anda bahkan tidak perlu menguji nilai yang Optionaldibungkus.
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());
}