Anway Kulkarni
Anway Kulkarni

Reputation: 261

how to automate the functional testing in yii2?

I use the codecept functional testing for test my APIs in yii2.I put the arguments hardcoded for testing like this

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

I wanted to give that arguments while I running the test case by codecept run functional loginCept or save that arguments in one file and assign to the test case when I run the test.How should I achieve this?

Upvotes: 6

Views: 1187

Answers (1)

Nikolay Traykov
Nikolay Traykov

Reputation: 1695

You can create a file in path/to/your/project/tests/codeception/config called let's say params.php. Then add params to the newly created file:

<?php
    return [
        'login.email' => '[email protected]', 
        'login.password' => '111111'
    ];

In your path/to/your/project/tests/codeception/config/config.php put this:

<?php
    return [
        'components' => [
            ...
        ],
        'params' => require(__DIR__ . '/params.php'),
    ];

Use it in your test code the same way you call params in a regular Yii application. It doesn't matter whether it is unit, functional etc.

Yii::$app->params['user.login'];

Upvotes: 3

Related Questions