Добавил свой функциональный тест для тестирования бэкенда (класс а-ля калькулятор)
Код: Выделить всё
<?php
namespace backend\tests\functional;
use backend\tests\FunctionalTester;
use common\fixtures\CalculatorFixture;
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,
// '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}');
}
}
Test tests/functional/CalculatorCest.php:calcCorrect
Step See "{"a":2,"b":4,"c":8,"r":1}"
Fail Failed asserting that on page /test1/add?iiduser=1&a=2&b=4&c=8
--> My Yii Application Toggle navigation My ApplicationHome Logout (admin) Congratulations! You have successfully created your Yii-powered application. Get started with Yii Heading Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqu
[Content too long to display. See complete response in '/home/arhat109/PhpstormProjects/test1/backend/tests/_output/' directory]
--> contains "{"a":2,"b":4,"c":8,"r":1}".
За первой стрелкой как понимаю, то что оно получил со страницы, т.к. не залогировался как админ. Страница по адресу amOnPage() должна отдавать JSON, что ниже и она его отдает при ручном запуске.
Что я делаю "не так"? И почему КАЖДЫЙ РАЗ надо сносить тестовую БД и накатывать миграции повторно, т.к. таблица users кем-то очищается, но не могу найти кем? В настройках шаблонов, конфигурациях нигде за это ничего не указано.. это где-то "во внутрях" тестера от Yii2? Как исправить?
Всегда считал что автоматическое тестирование - ЗЛО, и тупо способ прикрыть свою Ж* .. теперь уже в этом просто уверен..