9

我有一个接收数组作为参数的测试方法,我想从数据提供者方法中提供数据?

怎样才能做到这一点?

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'键的值......等等

我想传递整个数组

4

1 回答 1

21

数据提供者方法必须返回一个数组,其中包含一个数组,用于传递给测试方法的每组参数。要传递一个数组,请将其与其他参数一起包含。请注意,在您的示例代码中,您将需要另一个封闭数组。

这是一个返回两组数据的示例,每组数据都有两个参数(一个数组和一个字符串)。

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 实例化测试用例以调用每个数据提供者方法。

于 2012-08-07T06:44:54.657 回答