gpt4 book ai didi

java - 混合参数化和程序化单元测试

转载 作者:行者123 更新时间:2023-11-30 03:10:06 24 4
gpt4 key购买 nike

使用 JUnit,您可以使用 @RunWith(Parameterized.class) 提供一组参数以传递给测试构造函数,然后对每个对象运行测试。

我试图将尽可能多的测试逻辑转移到数据中,但有些测试不容易转换为数据驱动的测试。有没有办法使用 JUnit 的Parameterized 运行程序来运行一些带参数的测试,然后添加不会为每个测试对象构造重复运行的非数据驱动测试?

最佳答案

我的解决方法是创建一个类,并将编程测试和数据驱动测试放在两个单独的子类中。子类必须是静态的,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
}
}
}

关于java - 混合参数化和程序化单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33770185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com