Java JUnit4:如何在规则中获取测试名称?
JUnit4:如何在Java JUnit4:如何在规则中获取测试名称?,java,junit,junit4,junit-rule,Java,Junit,Junit4,Junit Rule,JUnit4:如何在规则中获取测试名称?e、 g public class MyRule extends ExternalResource { @Before public void before() { // how to get the test method name to be run? } } 如果您只需要一个带有测试名称的@规则,不要重新设计轮子,只需使用内置的@规则 如果你试图建立自己的规则,增加一些逻辑,考虑扩展它。如果这也不是一个选项
规则中获取测试名称?e、 g
public class MyRule extends ExternalResource {
@Before
public void before() {
// how to get the test method name to be run?
}
}
如果您只需要一个带有测试名称的@规则
,不要重新设计轮子,只需使用内置的@规则
如果你试图建立自己的规则,增加一些逻辑,考虑扩展它。如果这也不是一个选项,你可以复制它的
为了回答注释中的问题,与任何其他TestRule
一样,externalresource
也有一个apply(语句、描述)
方法。您可以通过覆盖它来添加功能,只需确保调用super方法,这样就不会破坏ExternalResource
功能:
公共类MyRule扩展了ExternalResource{
私有字符串testName;
@凌驾
公开声明应用(声明库、说明){
//存储测试名称
testName=description.getMethodName();
返回super.apply(基础、说明);
}
在()之前公开无效{
//在before方法中使用它
System.out.println(“测试名称为”+testName);
}
}
MyRule需要扩展ExternalResource,因为它包含Before()和After()。但它没有启动(描述d)方法。如何在MyRule中获取方法名?谢谢