我有一个关于PHPUnit数据提供程序的非常有趣的问题。
protected $controller;
protected function setUp()
{
$this->controller = new ProductController();
}
/**
* @covers ProductsController::createItem
* @dataProvider getTestDataProvider
* @param number $name
*/
public function testCreateItem($name)
{
$prod = $this->controller->createItem($name);
$id = $prod->getId;
$this->assertInternalType('int', $id);
$this->assertInstanceOf('Product', $prod);
}
/**
* @covers ProductsController::getItemInfo
* @depends testCreateItem
* @param number $id
*/
public function testGetItemInfo($id)
{
$info = $this->controller->getItemInfo($id);
$this->assertArrayHasKey('id',$info);
$this->assertEquals($id, $info['id']);
}
我使用getTestDataProvider
从CSV文件中获取测试数据。然后testCreateItem
会根据CSV行创建10个新产品。
如何创建一个新产品的$id
数组并将其用作testGetItemInfo
的数据提供者?我不能将其存储在SESSION或文件中,因为提供程序函数在SetUp之前运行。
也许有人已经遇到过类似的问题?