我有一个接收数组作为参数的测试方法,我想从数据提供者方法中提供数据?
怎样才能实现?
public function dataProvider(){
return array(array(
'id'=>1,
'description'=>'',
));
}
/**
* @dataProvider dataProvider
*/
public function testAddDocument($data){
// data here shall be an array provided by the data provider
// some test data here
}
它会传递'id'键的值......等等
我想传递整个数组
答案 0 :(得分:13)
数据提供程序方法必须为每组参数返回一个包含一个数组的数组,以传递给测试方法。要传递数组,请将其与其他参数一起包含。请注意,在示例代码中,您需要另一个封闭数组。
这是一个返回两组数据的示例,每组数据都有两个参数(一个数组和一个字符串)。
public function dataProvider() {
return array( // data sets
array( // data set 0
array( // first argument
'id' => 1,
'description' => 'this',
),
'foo', // second argument
),
array( // data set 1
array( // first argument
'id' => 2,
'description' => 'that',
),
'bar', // second argument
),
);
}
重要提示:数据提供者方法必须是非静态的。 PHPUnit实例化测试用例以调用每个数据提供者方法。