我有一个测试方法,依赖于另一个在PHPUnit中使用数据提供程序的方法:
/**
* @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);
}
}
目前的解决方法是,在测试之间将结果存储在静态属性中。
print_r($results);
来查看传递给testCanDoSomeMoreStuff()
的内容了吗? - uzyn