使用JUnit,您可以使用@RunWith(Parameterized.class)
提供一组参数传递给测试构造函数,然后对每个对象运行测试。
我试图将尽可能多的测试逻辑移植到数据中,但是有些测试不能轻易转换为数据驱动的测试。有没有办法使用JUnit的Parameterized
运行器来运行一些带参数的测试,然后还添加不为每个测试对象构造重复运行的非数据驱动的测试?
答案 0 :(得分:1)
我的解决方法是创建一个单独的类,并将程序化和数据驱动的测试放在两个独立的子类中。子类必须是静态的,以便JUnit运行其测试。这是一个骨架:
@RunWith(Enclosed.class) // needed for working well with Ant
public class MyClassTests {
public static class Programmatic {
@Test
public void myTest(){
// test something here
}
}
@RunWith(Parameterized.class)
public static class DataDriven {
@Parameters
public static Collection<Object[]> getParams() {
return Collections.emptyList();
}
private String data;
public DataDriven(String testName, String data){
this.data = data;
}
@Test
public void test() throws AnalyzeExceptionEN{
// test data string here
}
}
}
答案 1 :(得分:1)
一种方法是使用Junit的body {
padding-top: 50px;
padding-bottom: 20px;
}
/* Set padding to keep content from hitting the edges */
.body-content {
padding-left: 15px;
padding-right: 15px;
}
/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
max-width: 280px;
}
.firstNumber {
color: red;
}
.secondNumber {
color: blue;
}
.thirdNumber {
color: green;
}
.fourthNumber {
color: orange;
}
.fifthNumber {
color: purple;
}
跑步者。它非常冗长但也非常强大。它允许您在一个文件中组合多个不同的运行器。
其他选项是使用自定义junit runner。 zohhak肯定支持tests with parameters and without。小提取物:
Enclosed
如果这对你来说还不够,你肯定可以找到支持这两种测试的其他跑步者。