Добрый день!
Тестирую API, у меня есть набор тестов. Перед тестами я хочу регистрировать пользователя, а после — удалять его (один раз за период тестирования) с помощью _beforeSuite и _afterSuite. Написала _beforeSuite - работает, пользователь зарегистрирован. Пытаюсь описать _afterSuite - получаю ошибку.
Думала, что проблема в коде _afterSuite, но попробовала перенести код из _beforeSuite, но он тоже падает с той же ошибкой.
_beforeSuite
public function _beforeSuite(array $settings = []) {
$I = $this;
$user = new User();
$moduleREST = $I->getModule('REST');
//регистрация по email
$moduleREST->haveHttpHeader('Content-Type', 'application/json');
$response = json_decode($moduleREST->sendPost('/user/check', ['userInput' => $user->email]))->data;
if ($response->isNewUser) {
$moduleREST->sendPost( '/user/register', [
'email' => $user->email,
]);
}
_afterSuite
public function _afterSuite(array $settings = []) {
$I = $this;
$user = new User();
$moduleREST = $I->getModule('REST');
//удаление по email
$moduleREST->haveHttpHeader('Content-Type', 'application/json');
$response = json_decode($moduleREST->sendPost('/user/check', ['userInput' => $user->email]))->data;
if (!$response->isNewUser) {
$moduleREST->sendPost( '/user/delete', [
'email' => $user->email,
]);
}
Ошибка:
FATAL ERROR. TESTS NOT FINISHED.
Uncaught TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given in .../vendor/codeception/lib-innerbrowser/src/Codeception/Lib/InnerBrowser.php:227
Stack trace:
#0 /.../vendor/codeception/lib-innerbrowser/src/Codeception/Lib/InnerBrowser.php(227): method_exists(NULL, 'isFollowingRedi...')
#1 /.../vendor/codeception/lib-innerbrowser/src/Codeception/Lib/InnerBrowser.php(161): Codeception\Lib\InnerBrowser->clientRequest('POST', 'https://app.app...', Array, Array, Array, '{"userInput":"g...')
#2 /.../vendor/codeception/module-rest/src/Codeception/Module/REST.php(701): Codeception\Lib\InnerBrowser->_request('POST', 'https://app.app...', Array, Array, Array, '{"userInput":"g...')
#3 /.../vendor/codeception/module-rest/src/Codeception/Module/REST.php(475): Codeception\Module\REST->execute('POST', 'https://app.app...', '{"userInput":"g...', Array)
Использую Codeception 5.
Заранее спасибо за помощь!