@depends аннотаций позволяет выразить зависимости между тестами:Можно ли вернуть mutiple значения с помощью @depends?
class MyTest extends \PHPUnit_Framework_TestCase
{
public function testOne()
{
// ...
return $client;
}
/**
* @depends testOne
*/
public function testTwo(Client $client)
{
// ...
}
}
Если я хочу, чтобы вернуть несколько значений, можно вернуть массив значений, таких как:
class MyTest extends \PHPUnit_Framework_TestCase
{
public function testOne()
{
// ...
return array($client, $node);
}
/**
* @depends testOne
*/
public function testTwo(array $items)
{
list ($client, $node) = $items;
// ...
}
}
В то время как это работает отлично, проблема с этим подходом заключается в том, что я теряю тип намека на мою IDE и должен вручную аннотировать переменные $client
и $node
, чтобы они правильно их понимали.
То, что я хотел бы сделать вместо этого, чтобы явно использовать возвращаемые значения в виде отдельных параметров во втором тесте:
class MyTest extends \PHPUnit_Framework_TestCase
{
public function testOne()
{
// ...
return array($client, $node);
}
/**
* @depends testOne
*/
public function testTwo(Client $client, Node $node)
{
// ...
}
}
Возможно ли это?
Похоже, вы правы, я не нашел решения самостоятельно, так как задал вопрос. Теперь мне удалось передать только один параметр в следующий тест с помощью '@ depends' и позаботьтесь о том, чтобы не было более одного теста в зависимости от заданного теста, чтобы избежать упоминания ссылочной проблемы! – Benjamin
'@ зависит', безусловно, является спасателем: я делаю функциональные тесты с помощью виртуального браузера и передаю браузер из теста для тестирования, каждый из которых загружает одну страницу, а следующий тест передается ссылкой на браузер на ожидаемом стр. Если тест не удался, все последующие, зависящие от него, пропущены! – Benjamin
Я согласен с 100%, я люблю @depends. Это только передача значения, которую я прекратил использовать. – SamHennessy