参数化JUnit测试非原始参数?

时间:2012-02-09 17:02:54

标签: unit-testing junit parameterized

很有可能使用参数运行JUnit测试,其中使用不同的数据多次执行相同的测试方法,如下所述:http://junit.org/apidocs/org/junit/runners/Parameterized.html

不幸的是,似乎只能使用原始参数或字符串,而不是对象。有没有已知的解决方法?

4 个答案:

答案 0 :(得分:7)

使用@Parameters注释时data()方法的类型为List<Object[]>,因此您可以放入任何对象。

要传入例如Money对象,要转换为列表的数组将是:

  

{{new Money(26,“CHF”)},     {new Money(12,“USD”)}}

测试类的构造函数应该将Money对象作为参数。

答案 1 :(得分:1)

最近我开始了zohhak项目。它让你写:

@TestWith({
   "25 USD, 7",
   "38 GBP, 2",
   "null,   0"
})
public void testMethod(Money money, int anotherParameter) {
   ...
}

答案 2 :(得分:0)

使用JUnitParams代替...... junitparams.googlecode.com

答案 3 :(得分:0)

使用Junit IIS Metabase is required to install Microsoft URLScan Filter v3.1. 也可以使用对象。

示例: -

@Parameters

}