結合依賴我有依賴於本身使用的數據提供者在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