@Before メソッドで現在実行中の TestCase メソッドの名前を取得したい。例
public class SampleTest()
{
@Before
public void setUp()
{
//get name of method here
}
@Test
public void exampleTest()
{
//Some code here.
}
}
ここで説明したように、@Rule と TestName の組み合わせを使用してみてください。
ドキュメントによると、メソッドの前にテスト名が必要です。
ルールを含むフィールドに注釈を付けます。このようなフィールドは、静的ではなくパブリックであり、TestRule のサブタイプである必要があります。TestRule に渡された Statement は、すべての Before メソッドを実行し、次に Test メソッドを実行し、最後にすべての After メソッドを実行し、これらのいずれかが失敗した場合は例外をスローします。
Junit 4.9を使用したテストケースは次のとおりです
public class JUnitTest {
@Rule public TestName testName = new TestName();
@Before
public void before() {
System.out.println(testName.getMethodName());
}
@Test
public void test() {
System.out.println("test ...");
}
}
クラスで@Rule
注釈を使用してみてくださいorg.junit.rules.TestName
@Rule public TestName name = new TestName();
@Test
public void test() {
assertEquals("test", name.getMethodName());
}