【发布时间】:2015-07-06 15:03:56
【问题描述】:
我需要有不同的参数集,所以我决定使用@Enclosed。但是,嵌套类必须是静态的,因此方法调用的所有现有方法/常量都必须是静态的。 但这很难,因为我无法更改所有这些方法的定义。
有没有什么方法可以使用@Enclosed 而不用静态添加现有方法的定义?
这是一个示例,以便您知道我在问什么。在示例中,由于 data() 是静态的,所以类 someTest 必须是静态的,所以如果我调用 nonStaticMethod(),我会在调用 nonStaticMethod( )。 但我不想将 nonStaticMethod() 重新定义为静态。
@RunWith(Enclosed.class)
public class EnclosedParameterizedTest extends EnclosedBase{
@RunWith(Parameterized.class)
public static class SomeTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
new Object[]{"NY"},
new Object[]{"CA"},
});
}
String state;
public SomeTest(String state) {
this.state = state;
}
@Test
public void verifyStateTest(){
nonStaticMethod(); //a method already defined in parent of
//EnclosedBase which I cannot re-define
}
}
}
【问题讨论】:
标签: java junit static inner-classes