考虑一个参数化的 JUnit 测试。JUnit 提供了一种使用静态方法参数化此类测试的方法:
@Parameterized.Parameters
public static Collection<Object[]> parameters(){
Object[][] data = new Object[][] { { 1, 11 }, { 2, 22 }, { 3, 33 }, { 4, 44 } };
return Arrays.asList(data);
}
但是,这不是我需要的,因为我不知道测试类本身的参数。测试类应该只是一个可以用一组参数参数化的测试类。我不想在类本身中指定此类参数。考虑一下我在测试套件中有很多这样的类。
我希望能够从外部代码参数化整个测试套件。即,有一些其他代码可以用一组特定的参数来实例化套件。套件本身不知道将使用哪些参数对其进行参数化。
例如,我有一个由测试类、和X
组成的测试套件。所有这些类都在其构造函数中使用例如字符串和整数作为参数。现在我希望能够使用特定的 String和 int在外部(例如,在另一个测试套件中)实例化,以便它将实例化并在它们的构造函数中使用和。A
B
C
X
s
i
A
B
C
s
i
如何做到这一点?