如何在yii2中自动化功能测试?

Anw*_*rni 5 php functional-testing yii yii2 codeception

我在yii2中使用codecept功能测试来测试我的API.我将这些参数硬编码用于测试

use tests\codeception\backend\FunctionalTester;
$I = new FunctionalTester($scenario);
$I->wantTo('Check when authenticated');
$I->sendPOST('/login', ['password' => '11111111', 'email'=>'check@check.com']);
$I->seeResponseCodeIs(200);
$I->seeResponseIsJson();
$I->seeResponseContains('"result"');
$I->seeResponseContains('"message"');
$I->haveHttpHeader('Accept','application/json');
$I->seeResponseContains('"message":"OK"');
Run Code Online (Sandbox Code Playgroud)

我想通过codecept运行函数loginCept运行测试用例时给出这些参数,或者将这些参数保存在一个文件中,并在运行测试时分配给测试用例.我应该如何实现?

Nik*_*kov 3

您可以在 path/to/your/project/tests/codeception/config 中创建一个名为 params.php 的文件。然后将参数添加到新创建的文件中:

<?php
    return [
        'login.email' => 'check@check.com', 
        'login.password' => '111111'
    ];
Run Code Online (Sandbox Code Playgroud)

在您的 path/to/your/project/tests/codeception/config/config.php 中放置以下内容:

<?php
    return [
        'components' => [
            ...
        ],
        'params' => require(__DIR__ . '/params.php'),
    ];
Run Code Online (Sandbox Code Playgroud)

在测试代​​码中使用它就像在常规 Yii 应用程序中调用参数一样。它是否是单元、功能等并不重要。

Yii::$app->params['user.login'];
Run Code Online (Sandbox Code Playgroud)