Di JUnit 5 TestInfo
bertindak 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 Optional
dibungkus.
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());
}