Тестирование backend Yii2 advanced - логирование теста

Всё про тестирование в Yii 2.0
Ответить
Arhat109
Сообщения: 61
Зарегистрирован: 2016.11.23, 09:06
Откуда: из СССР

Тестирование backend Yii2 advanced - логирование теста

Сообщение Arhat109 »

Вернулся к вопросу изучения codeception тестов в Yii2.

Как и рекомендуется, в /backend/tests/_data добавил своего ползателя руками в login_data.php (из поставки):

Код: Выделить всё

    [
        'username'=>'admin',
        'auth_key'=>'NdlpacZB9CfUPcFFvxHNH3xYl_wKrk_Z',
        'password_hash'=>'$2y$13$rxeZquQsT1pqlTeM/FEKTufM7.X9CA3auJKur8H6X4CibC2SVBU5m',
        'email'=>'gittest109@mail.ru',
        'status'=>'10',
        'created_at'=>1601184603,
        'updated_at'=>1601184619,
        'verification_token'=>'FfSfjhvJd8WeV-ELVie6Qytrx68gmm6M_1601184603',
    ]
Сделал такой файлик тестирования своей страницы, которая принимает GET и отдает JSON (пример АПИ):

Код: Выделить всё

<?php

namespace backend\tests\functional;

use backend\tests\FunctionalTester;
use common\fixtures\CalculatorFixture;
use common\fixtures\UserFixture;
use common\models\User;

/**
 * Class LoginCest
 */
class CalculatorCest
{
    /**
     * Load fixtures before db transaction begin
     * Called in _before()
     * @see \Codeception\Module\Yii2::_before()
     * @see \Codeception\Module\Yii2::loadFixtures()
     * @return array
     */
    public function _fixtures()
    {
        return [
            'calculator' => [
                'class' => CalculatorFixture::class,
            ],
            'user' => [
                'class' => UserFixture::class,
                'dataFile' => codecept_data_dir() . 'login_data.php'
            ]
        ];
    }

    /**
     * @param FunctionalTester $I
     */
    public function calcCorrect(FunctionalTester $I)
    {
        $I->amLoggedInAs($I->grabRecord(User::class, ['username' => 'admin']));
        $I->amOnPage('/test1/add?iiduser=1&a=2&b=4&c=8');

        $I->see('{"a":2,"b":4,"c":8,"r":1}');
    }
}
Переделав исходный тест LoginUser.php..

Тест валится с ошибкой, Failed asserting that on page /test1/add?iiduser=1&a=2&b=4&c=8 и показывает .. страничку LOGOUT исходного кода advanced шаблона!

Что я сделал НЕ ТАК? Может кто-то помочь, как запустить этот тест для backend под логированным юзверем admin/admin123?

P.S. Штатный тест LoginUser.php файл переименован и сделана пересброка (codeception build) ..
Все чаще Историки находят следы древней и очень высокоразвитой Цивилизации, со странными буквами .. СССР

Arhat109
Сообщения: 61
Зарегистрирован: 2016.11.23, 09:06
Откуда: из СССР

Re: Тестирование backend Yii2 advanced - логирование теста

Сообщение Arhat109 »

Внес в виды страниц текстовку front, front login, back index, back login, back test , чтобы увидеть "что происходит", без помощи xdebug.

В итого, отрабатывает только первая строка теста calcCorrect(), и на этом тест заканчивается. Вход под админом - делается успешно. Переход на страницу /test1/... НЕ происходит.

Что я делаю НЕ ТАК?!? Никто не поможет? Некому?
Все чаще Историки находят следы древней и очень высокоразвитой Цивилизации, со странными буквами .. СССР

Arhat109
Сообщения: 61
Зарегистрирован: 2016.11.23, 09:06
Откуда: из СССР

Re: Тестирование backend Yii2 advanced - логирование теста

Сообщение Arhat109 »

Все таки пришлось лезть в отладку .. вопрос можно закрыть.

Косяк был тут: '/test1/add?iiduser=1&a=2&b=4&c=8' по привычке сделал урл через слеши, а надо было '/?r=test1/add&iiduser=1&a=2&b=4&c=8'
Тест прошел, всем спасибо.
Все чаще Историки находят следы древней и очень высокоразвитой Цивилизации, со странными буквами .. СССР

Ответить