Junit参数化测试通常返回对象数组的集合,但是测试类构造函数类型可以通过任何方法获得吗?
例如:-
//Some class constructor
public parametrization (String username, String password, int pincode){
this.username=username;
this.password=password;
this.pincode=pincode;
}
@Parameters
public static Collection<Object[]> getdata(){
Object[][] data = new Object[2][3];
//row 1st
data [0][0] = "usernamea";
data [0][1] = "passa";
data [0][2] = new Integer(111);
}如您所见,方法getdata()返回的参数实际上是object类型,但在运行时,它们被分配给构造函数的参数,构造函数是一些对象的其他子类类型,如String,Integer e.t.c,根据Java规则它不兼容例如:- String类型对象不能分配给对象类型.
那么,是Junit框架将返回的值作为对象类型来转换为构造函数参数类型(例如String )吗?
我是不是漏掉了什么?
发布于 2013-08-12 00:02:04
就像你说的那样,这些价值观正在被抛弃。转换实际上是由Java完成的,特别是:Constructor.newInstance(Object...)。
如果您好奇的话,上面的方法是由JUnit在第186行这里(JUnit v4.11源)上调用的。
https://stackoverflow.com/questions/18158430
复制相似问题