单元测试是用本机PHPUnit编写的,然后我们需要用验收和功能测试来覆盖代码。所以测试被修改为与Codeception一起使用。一切正常,除了一件事 - Codeception不理解本机PHPUnit dataProviders。我试过edno的@examples和扩展,但它没有用。你有什么想法吗?
答案 0 :(得分:0)
dataproviders在代码中的工作方式略有不同,但也很好。
在您的Cest对象中添加一个私有/受保护的方法(例如,我有一个API端点,除了太多版本的身份验证:
/**
* @return array
*/
protected function tokenProvider()
{
return [
['name' => "x-client-token", 'value' => 'clientToken'],
['name' => "x-api-key", 'value' => 'apikey'],
];
}
在步骤[1.]中受保护方法的名称后面的名为@dataprovider
的测试前面添加注释,并添加一个Codeception Example作为方法参数。 (命名空间Codeception\Example
)
/**
* @env stage
*
* @group test
* @dataprovider tokenProvider
*/
public function getArticleList(AcceptanceTester $I, Example $token)
现在,测试将调用n次,具体取决于步骤[1]中数组中的示例数量。