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

时间:2016-12-01 09:18:41

标签: java junit junit4

我想测试类X(x1,x2,... xn)的n个不同实例上具有两个不同类Y(y1,y2,..,yn)的完全相同的行为,但我想要使用相同的索引进行测试。

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

我无法想到用JUnit参数化测试或理论来做这件事的简单方法,但也许我错过了一些东西。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用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.
  } 
}