Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit4:如何在规则中获取测试名称?_Java_Junit_Junit4_Junit Rule - Fatal编程技术网

Java 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? } } 如果您只需要一个带有测试名称的@规则,不要重新设计轮子,只需使用内置的@规则 如果你试图建立自己的规则,增加一些逻辑,考虑扩展它。如果这也不是一个选项

JUnit4:如何在
规则中获取测试名称?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中获取方法名?谢谢