参数化测试与理论与预定义测试中的硬编码

Parametrized Test vs. Theory vs. Hard coded in pre defined test

我想在 class X (x1, x2, ... xn) 的 n 个不同实例和 class Y (y1, y2, .. , yn), 但我想用相同的索引进行测试。

我的意思是在测试中用 y1 测试 x1,用 y2 测试 x2 等等: @测试 TestXandY(X x, Y y)

我想不出用 JUnit 参数化测试或理论来完成它的简单方法,但也许我遗漏了一些东西。

谢谢

您可以使用 JUnit 的 Parameterized 运行器来完成此操作。

@RunWith(Parameterized.class)
public class YourTest {
  @Parameters
  public static Object[][] dataSets() {
    return new Object[][] {
      { new X("x1"), new Y("y1") },
      { new X("x2"), new Y("y2") },
      ...
    }
  }

  @Parameter(0)
  public X x;

  @Parameter(1)
  public Y y;

  @Test
  public void checkSomething() {
    //do something with x and y.
  } 
}