一个问题简而言之:phpunit在运行测试时可以使用多个数据提供者吗?phpunit可以使用多个数据提供者
例如,我有一个名为getById的方法,我需要为它运行成功和失败的测试用例。
成功的测试用例意味着它可以返回相应的记录。如果不成功,输入可能分为两类:无效和失败。
无效表示输入不合法,失败则表示输入可能有效,但没有与该ID对应的记录。
因此,代码是这样的:
/**
* @dataProvider provideInvalidId
* @dataProvider provideFailedId
*/
public function testGetByIdUnsuccess($id)
{
$this->assertNull($this->model->getById($id));
}
但事实证明,只有第一个数据提供者已被使用,忽略了第二个。虽然我不确定这个塞纳里奥是否常见,但这是一个问题。我们能否使用多个数据提供者?如果可以的话,怎么样?
PS:在here
我处于类似的情况,其中单独的dataProviders会使代码更具可读性(通过提供给他们的数据来记录代码和测试用例)。我想知道最佳做法是什么? – Pitt 2016-04-13 04:31:55