【问题标题】:JUnit parameterized test with varying parameters具有不同参数的 JUnit 参数化测试
【发布时间】:2014-06-23 20:16:46
【问题描述】:

考虑一个参数化的 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,由测试类ABC 组成。所有这些类都在其构造函数中使用例如字符串和整数作为参数。现在我希望能够在外部(例如,在另一个测试套件中)使用特定的字符串 s 和 int i 实例化 X 以便它将使用 @987654332 实例化 A BC @ 和 i 在它们的构造函数中。

如何做到这一点?

【问题讨论】:

    标签: java unit-testing junit parameterized-tests


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多