【发布时间】:2013-02-14 01:08:57
【问题描述】:
简而言之:phpunit在运行测试时可以使用多个数据提供者吗?
例如,我有一个名为 getById 的方法,我需要为它运行成功和不成功的测试用例。
成功的测试用例意味着它可以返回相应的记录。而对于不成功的,输入可以分为两类:无效和失败。
invalid表示输入不合法,failed表示输入可能有效,但没有对应的ID对应的记录。
所以代码是这样的:
/**
* @dataProvider provideInvalidId
* @dataProvider provideFailedId
*/
public function testGetByIdUnsuccess($id)
{
$this->assertNull($this->model->getById($id));
}
但事实证明只使用了第一个数据提供者,而忽略了第二个。虽然我不确定这种情况是否常见,但这是问题所在。我们可以使用多个数据提供者吗?如果可以,怎么做?
PS:在here没有找到太多帮助
【问题讨论】:
-
我处于类似的情况,拥有单独的 dataProviders 会使代码更具可读性(通过提供给它们的数据记录代码和测试用例)。我想知道最佳做法是什么?
标签: php unit-testing tdd phpunit