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

データプロバイダーメソッドは、テストメソッドに渡す引数のセットごとに1つの配列を含む配列を返す必要があります。配列を渡すには、他の引数と一緒に配列を含めます。サンプルコードでは、別の囲んでいる配列が必要になることに注意してください。

これは、それぞれ2つの引数(配列と文字列)を持つ2つのデータセットを返す例です。

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 に答える