PHPUnit でデータ プロバイダーを使用する別のメソッドに依存する 1 つのテスト メソッドがあります。
/**
* @dataProvider getFields
*/
public function testCanDoSomeStuff($parm1, $parm2) {
$result = my_func($parm1, $parm2);
$this->assertNotNull($result);
return $result;
}
/**
* @depends testCanDoSomeStuff
*/
public function testCanDoSomeMoreStuff($result) {
$this->assertNotNull($result);
}
getFields()
データ プロバイダー機能もありますが、ここで示す必要はありません。
データ プロバイダーのパスに依存する最初のテストは、$result
NULL ではありません。
テストの結果が依存テストに$result
パラメーターとして渡されることを期待しています。ただし、testCanDoSomeMoreStuff
関数はNULL
パラメーターを受け取り、テストは失敗します。
アップデート
この簡単なテスト ケースは、問題を示しています。
class MyTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider myFunc
*/
public function testCanDoSomeStuff($value) {
$this->assertNotNull($value);
return $value;
}
/**
* @depends testCanDoSomeStuff
*/
public function testCanDoSomeMoreStuff($value) {
$this->assertNotNull($value);
}
/**
* Data provider function
*/
public function myFunc() {
$values = array('22');
return array($values);
}
}
現時点での回避策として、テスト間で結果を静的プロパティに保存しました。