java.lang.Exception:The@Rule';xyzFolder';必须实现MethodRule或TestRule
我为“临时文件夹”定义了如下规则:java.lang.Exception:The@Rule';xyzFolder';必须实现MethodRule或TestRule,java,junit,Java,Junit,我为“临时文件夹”定义了如下规则: @Rule public TemporaryFolder xyzFolder = new TemporaryFolder(); 在方法上: private void testMethod() { File testFile = xyzFolder.newFile("test"); } 但得到的例外是: java.lang.Exception: The @Rule 'xyzFolder' must implement MethodRule or Te
@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.
测试方法应该是公共的,以便作为测试用例运行并正确解释规则
@Test
public void testMethod() {
File testFile = xyzFolder.newFile("test");
}
但是,在不提供更多代码细节的情况下,我唯一能建议的另一件事是检查您是否使用了JUnit及其org.JUnit.rules.temporary文件夹的正确版本,而不是其他内容。将“implements TestRule”或“implements MethodRule”添加到类xyzFolder中
如“xyzFolder实现TestRule/MethodRule”。
这将解决错误,稍后您必须根据您的需要实现未实现的方法,看看这个
了解更多详细信息。这听起来像是类加载器冲突。您的项目中是否有多个JUnit版本?请向我们展示一个。根据给定的信息,我们可能无法找到问题的解决方案,特别是如果您的OP中没有包含这样的信息,即该方法是从实际测试方法中调用的,并且在@test public void testxyz(){testMethod()}中调用了类似的stuffTest方法。好的,我已经编辑了我的答案。如果您能向我们展示更多的代码,我们可以尝试提供帮助