我正在使用Parameterized
JUnit运行程序多次运行我的一些测试。这是我的测试类的模板
@RunWith(value = Parameterized.class)
public class TestClass {
private String key;
private boolean value;
public TestClass(String key, boolean value) {
this.key = key;
this.value = value;
}
@Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][] {
{"key1", true},
{"key2", true},
{"key3", false}
};
return Arrays.asList(data);
}
@Test
public void testKeys() {
...
}
@Test
public void testValues() {
...
}
@Test
public void testNotRelatedKeyValue() {
}
}
现在,我希望我的测试方法 - testKeys(), testValues()
能够运行它们正在运行的不同参数值。
但是,我的最后一个方法 - testNotRelatedKeyValue()
也在执行多次以及其他参数化测试。
我不希望testNotRelatedKeyValue()
多次运行,只需运行一次。
这个类是否可以或者我需要创建一个新的测试类?
答案 0 :(得分:2)
您可以使用Enclosed runner构建测试。
@RunWith(Enclosed.class)
public class TestClass {
@RunWith(Parameterized.class)
public static class TheParameterizedPart {
@Parameter(0)
public String key;
@Parameter(1)
private boolean value;
@Parameters
public static Object[][] data() {
return new Object[][] {
{"key1", true},
{"key2", true},
{"key3", false}
};
}
@Test
public void testKeys() {
...
}
@Test
public void testValues() {
...
}
}
public static class NotParameterizedPart {
@Test
public void testNotRelatedKeyValue() {
...
}
}
}