Хочу переписать эти же тесты но чтобы использовались фикстуры.
Но мне неясно несколько моментов:
1)Глобальные фикстуры выполняются перед каждым тестом или нет?
2)Можно ли изменять глобальные фикстуры во время теста? Т.е. есть какой-то набор данных и он общий для всех, но в 1 тесте нужно изменить кусочек этих данных
3)Я прочёл как использовать фикстуры и попытался реализовать это в коде. В api.suite.yml я добавил:
Код: Выделить всё
- Yii2:
part: [orm, email, fixtures]
entryScript: index-test.php
cleanup: false
configFile: 'tests/codeception/config/api.php'
Содержимое файла:
Код: Выделить всё
namespace app\tests\fixtures;
use yii\test\ActiveFixture;
class EmployeeFixture {
public $modelClass = 'app\models\Employee';
}
Создал тест :
Код: Выделить всё
<?php
use app\tests\codeception\api\fixtures\EmployeeFixture;
//use tests\fixtures\EmployeeFixture;
class TestCest {
// public function _fixtures() {
// return [
// 'employee' => [
// 'class' => EmployeeFixture::className(),
// 'dataFile' => codecept_data_dir() . 'employee.php']
// ];
// }
//
public function _before(ApiTester $I) {
$I->haveFixtures([
'employee' => [
'class' => EmployeeFixture::className(),
'dataFile' => codecept_data_dir() . 'employee.php']
]);
}
public function tryToTestOne(ApiTester $I) {
$I->sendPOST('site/login', [
'LoginForm[username]' => $this->employee['LoginUserID'],
'LoginForm[password]' => '123'
]);
$I->seeResponseCodeIs(200);
}
public function _after(ApiTester $I) {
}
}