结合依赖我有依赖于本身使用的数据提供者在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
不为空。
我预计测试结果将作为$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 2012-07-24 11:16:55
嗨Uzyn,是的 - null正在通过。我还将调用的结果打印到“my_func”,该结果不为null。 – iainp999 2012-07-24 11:19:09
你的代码对我来说看起来不错。也许你可能想分享你的实际代码,但实际中可能会有一些错误。 – uzyn 2012-07-24 11:20:04