2
的@depends註釋允許測試之間表達的依賴關係:是否可以使用@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 2013-04-30 21:41:40
'@ depends'絕對是一個救星,雖然:我在做功能測試與虛擬瀏覽器,並通過從測試的瀏覽器進行測試,分別加載一個頁面,接下來的測試通過一個參考瀏覽器的預期頁。如果測試失敗,所有依賴它的後續測試都會被跳過! – Benjamin 2013-04-30 21:46:17
我100%同意,我愛@depends。這只是我不再使用的價值。 – SamHennessy 2013-05-01 02:43:45