是否可以通过除类型之外的其他方式对DataPoints进行分组?

例如,假设我有一个要测试的理论,使用“年龄”和“体重”作为参数:

@Theory
public void testSomething(int age, int weight) { ... }


其中“年龄”可以是10、20或50,体重可以是50、100或200。

AFAIK,我不能告诉JUnit某些int DataPoints与年龄相对应,而另一些与权重相对应。有人知道有没有办法做到这一点?

最佳答案

我认为数据点是静态的,因此我认为您无法在此处使用它们。

仅供参考,这是使用TestNG的方法:

@DataProvider
public Object[][] dp() {
  List<Object[]> result = Lists.newArrayList();
  for (int i : Arrays.asList(10, 20, 50)) {
    for (int j : Arrays.asList(50, 100, 200)) {
      result.add(new Object[] { i, j });
    }
  }
  return result.toArray(new Object[result.size()][]);
}

@Test(dataProvider = "dp")
public void testSomething(int age, int weight) {
  System.out.println("Age:" + age + " weight:" + weight);
}


将打印:

Age:10 weight:50
Age:10 weight:100
Age:10 weight:200
Age:20 weight:50
Age:20 weight:100
Age:20 weight:200
Age:50 weight:50
Age:50 weight:100
Age:50 weight:200

===============================================
SingleSuite
Total tests run: 9, Failures: 0, Skips: 0
===============================================

关于java - 将DataPoints分成几组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6860929/

10-10 19:53