我正在尝试在Junit中运行一些参数化测试。我的测试只有一个参数,所以我可以这样做:
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList( new Object [][] {
{new TestCase("AD", "sikuli", l)}});
}
通过这种方式,我可以使用不同的TestCase
个对象运行相同的测试。问题是我想从另一个类接收ArrayList
TestCase
,我不想要在这里创建TestCase对象。有什么方法可以做到吗?
答案 0 :(得分:0)
您可以使用所需的测试用例集定义接口:
public interface MyTestCases {
public Collection<Object[]> TESTCASE_SET_1 = Arrays.asList(
new Object[][] {{new TestCase("AD", "sikuli", l)}});
// maybe followed by other sets of test cases
}
在这里,您只需返回界面中定义的集合。
@Parameters
public static Collection<Object[]> data() {
return MyTestCases.TESTCASE_SET_1;
}
希望有所帮助。
答案 1 :(得分:0)
在下面的示例中,将getTestCaseList()
替换为调用返回TestCase
个对象的其他类:
@Parameters
public static Collection<Object[]> data() {
Collection<Object[]> result = new ArrayList<>();
for (TestCase testCase : getTestCaseList()) {
result.add(new Object[] {testCase});
}
return result;
}