java.lang.Exception:@Rule'xyzFolder'必须实现MethodRule或TestRule

时间:2017-05-03 09:58:56

标签: java junit

我有一个为“TemporaryFolder”定义的规则如下:

@Rule
public TemporaryFolder xyzFolder = new TemporaryFolder();

并在方法中:

private void testMethod() {
    File testFile = xyzFolder.newFile("test");
}

但是获得例外:

java.lang.Exception: The @Rule 'xyzFolder' must implement MethodRule or TestRule.

2 个答案:

答案 0 :(得分:0)

测试方法应该公开作为测试用例运行并正确解释规则。

 @Test
 public void testMethod() {
     File testFile = xyzFolder.newFile("test");
 }

http://junit.org/junit4/javadoc/4.12/org/junit/Test.html

但是,如果没有查看代码的更多细节,我可以建议的另一件事就是检查您是否使用了正确版本的JUnit及其org.junit.rules.TemporaryFolder而不是其他内容。

答案 1 :(得分:0)

在类xyzFolder中添加“实现TestRule”或“实现MethodRule” 就像“ xyzFolder实现TestRule / MethodRule”。 那将解决错误,然后您必须根据需要实现未实现的方法,请看一下  有关更多详细信息https://junit.org/junit4/javadoc/4.12/org/junit/rules/MethodRule.html