JUnit 5ではTestInfo
、JUnit 4のTestNameルールのドロップイン代替として機能します。
ドキュメントから:
TestInfoは、現在のテストまたはコンテナに関する情報を@ Test、@ RepeatedTest、@ ParameterizedTest、@ TestFactory、@ BeforeEach、@ AfterEach、@ BeforeAll、および@AfterAllメソッドに挿入するために使用されます。
現在実行されているテストのメソッド名を取得するには、String TestInfo.getDisplayName()
およびの
2つのオプションがあります 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());
}