我有多个参数化测试类,它们采用完全相同的参数。当我运行测试时,每个人都调用它的data()
方法,该方法返回测试执行的参数。
我的问题是我的所有data()
方法都是相同的并创建了相同的参数,我无法弄清楚如何删除这些重复的代码。
目标是让一个函数计算所有测试类的参数。
如果你知道如何做到这一点会对我有所帮助。
由于
答案 0 :(得分:1)
另外,我会说你有两个经典的OO选项 - 继承和包含。
使用继承,您只需将data()
方法放在某个基类中:
public class MyTestCaseBase {
@Parameters
public static Collection<Object[]> data() {
return ...
}
}
public class MyTest extends MyTestCaseBase {
// tests
}
包含你可以选择扩展不同的类,但需要自己做一些“管道”:
public class MyTestParameters {
public static Collection<Object[]> data() {
return ...
}
}
public class MyTest {
@Parameters
public static Collection<Object[]> data() {
return MyTestParameters.data();
}
// tests...
}