3 回答

TA貢獻1848條經驗 獲得超2個贊
JUnit 4.7似乎使用TestName-Rule添加了此功能??雌饋磉@將為您獲取方法名稱:
import org.junit.Rule;
public class NameRuleTest {
@Rule public TestName name = new TestName();
@Test public void testA() {
assertEquals("testA", name.getMethodName());
}
@Test public void testB() {
assertEquals("testB", name.getMethodName());
}
}

TA貢獻1848條經驗 獲得超10個贊
JUnit 4.9.x及更高版本
從JUnit 4.9開始,TestWatchman不推薦使用TestWatcher該類,而推薦使用該類:
@Rule
public TestRule watcher = new TestWatcher() {
protected void starting(Description description) {
System.out.println("Starting test: " + description.getMethodName());
}
};
注意:必須聲明包含類public。
JUnit 4.7.x-4.8.x
以下方法將打印類中所有測試的方法名稱:
@Rule
public MethodRule watchman = new TestWatchman() {
public void starting(FrameworkMethod method) {
System.out.println("Starting test: " + method.getName());
}
};

TA貢獻1836條經驗 獲得超3個贊
JUnit 5及更高版本
在JUnit 5中,您可以注入TestInfo,從而簡化了提供給測試方法的測試元數據。例如:
@Test
@DisplayName("This is my test")
@Tag("It is my tag")
void test1(TestInfo testInfo) {
assertEquals("This is my test", testInfo.getDisplayName());
assertTrue(testInfo.getTags().contains("It is my tag"));
}
添加回答
舉報