我正在使用PHPUnit 3.4.9,但是在使用@depends
注释时遇到了一些问题。它像例子中一样工作,但是当生产者依赖于提供者时会出现问题。我不知道这是否应该正常工作,但我的代码基本上是这种形式:
<?php
class StackTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testEmpty ($data)
{
$stack = array();
$this->assertTrue(empty($stack));
return $stack;
}
/**
* @depends testEmpty
*/
public function testPush (array $stack)
{
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertFalse(empty($stack));
return $stack;
}
/**
* @depends testPush
*/
public function testPop (array $stack)
{
$this->assertEquals('foo', array_pop($stack));
$this->assertTrue(empty($stack));
}
public function provider ()
{
return array(
// Some testing data here...
);
}
}
上面的代码只是一个例子,但展示了我的代码结构。运行时,它会跳过消费者测试,就像生产者失败了一样。我期望对于提供者中的每组测试数据,生产者将使用该数据运行,并相应地运行其所有消费者。