1

考虑一个参数化的 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在外部(例如,在另一个测试套件中)实例化,以便它将实例化并在它们的构造函数中使用和。ABCXsiA BCsi

如何做到这一点?

4

1 回答 1

0

我正在使用JUnitParams包,它增加了更多参数化测试的能力。其中一项能力是指定一个提供参数的单独类。看看链接,他们给出了很多例子,其中一个是使用外部类。

于 2014-06-24T12:40:19.903 回答