在Codeception 2.3中使用dataProvider。*

时间:2017-09-04 12:11:38

标签: phpunit codeception

单元测试是用本机PHPUnit编写的,然后我们需要用验收和功能测试来覆盖代码。所以测试被修改为与Codeception一起使用。一切正常,除了一件事 - Codeception不理解本机PHPUnit dataProviders。我试过edno的@examples和扩展,但它没有用。你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

dataproviders在代码中的工作方式略有不同,但也很好。

  1. 在您的Cest对象中添加一个私有/受保护的方法(例如,我有一个API端点,除了太多版本的身份验证:

    /**
     * @return array
     */
    protected function tokenProvider()
    {
        return [
            ['name' => "x-client-token", 'value' => 'clientToken'],
            ['name' => "x-api-key", 'value' => 'apikey'],
        ];
    }
    
  2. 在步骤[1.]中受保护方法的名称后面的名为@dataprovider的测试前面添加注释,并添加一个Codeception Example作为方法参数。 (命名空间Codeception\Example

    /**
     * @env stage
     *
     * @group test
     * @dataprovider tokenProvider
     */
    public function getArticleList(AcceptanceTester $I, Example $token)
    
  3. 现在,测试将调用n次,具体取决于步骤[1]中数组中的示例数量。