У меня есть один метод тестирования, который зависит от другого метода, который сам использует поставщика данных в 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);
}
}
В качестве обходного пути сейчас я сохранил результат в статическом свойстве между тестами.