在同一组测试用例上运行多个测试数据

时间:2009-07-26 06:26:05

标签: unit-testing junit4 dataprovider parameterized

我是eclipse的新手。我正在使用JUnit 4.我在我的类中编写了一个set up方法,它扩展了Testcase,在那里进行了一些初始化。我在同一个类中有一些测试用例。我有拉链形式的测试数据并附加到工作空间。 目前,我能够为单个测试数据运行所有测试用例。不知何故,我希望控件返回设置()以获取第二个测试数据并运行所有测试用例。 可能吗? ans如果有,请发送一些代码片段吗?

提前致谢

感谢您的回复,但我应该在哪里保留这些代码是否应该保留在设置方法中以及如何从设置中获取测试数据?

1 个答案:

答案 0 :(得分:1)

您需要使用参数化跑步者。它允许您使用多个测试数据运行相同的测试。例如以下将暗示测试将运行四次,参数“number”每次都更改为数组中的值。

@RunWith(value = Parameterized.class)
public class StackTest {
 Stack<Integer> stack;
 private int number;

 public StackTest(int number) {
   this.number = number;
 }

 @Parameters
 public static Collection data() {
   Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };
   return Arrays.asList(data);
 }
 ...
}

修改

不确定什么不清楚,但我会尝试澄清。

需要@RunWith(value = Parameterized.class)注释。您必须有一个使用@Parameters注释的方法,该方法返回一个Collection对象,其每个元素必须是用于测试的各种参数的Array。您必须具有接受这些参数的公共构造函数。

可以在documentation

中找到其他信息和其他示例

更多examples