Java 如何编写@Parameters方法来使用另一个类的参数列表?
我试图在Junit中运行一些参数化测试。我的测试只有一个参数,所以我可以这样做:Java 如何编写@Parameters方法来使用另一个类的参数列表?,java,junit,parameterized,Java,Junit,Parameterized,我试图在Junit中运行一些参数化测试。我的测试只有一个参数,所以我可以这样做: @Parameters public static Collection<Object[]> data() { return Arrays.asList( new Object [][] { {new TestCase("AD", "sikuli", l)}}); } 通过这种方式,我可以用不同的TestCase对象运行相同的测试。问题是我想从另一个类接收TestCase的Ar
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList( new Object [][] {
{new TestCase("AD", "sikuli", l)}});
}
通过这种方式,我可以用不同的TestCase对象运行相同的测试。问题是我想从另一个类接收TestCase的ArrayList,我不想在这里创建TestCase对象。有什么方法可以做到这一点吗?您可以使用所需的测试用例集定义一个接口:
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;
}
希望这会有所帮助。在下面的示例中,用对另一个返回TestCase对象的类的调用替换getTestCaseList:
@Parameters
public static Collection<Object[]> data() {
Collection<Object[]> result = new ArrayList<>();
for (TestCase testCase : getTestCaseList()) {
result.add(new Object[] {testCase});
}
return result;
}