Codeception, повторяйте операцию, пока она не будет успешной - PullRequest
0 голосов
/ 20 февраля 2019

С помощью функции кодирования в настоящее время я тестирую свой сервер API.

Перед каждым тестом в файле CEST, который я создаю, в функции _before, пользователь:

public function _before(ApiTester $I)
{
   $user = $I->make(common\models\user\User::class);
   $I->amGoingTo("Save user via api");
   $I->sendPOST("/users", [
        'e_mail' => $user->e_mail,
        'username' => $user->username,
        'password' => $user->password,
        'lat' => $user->lat,
        'lng' => $user->lng,
        'date_of_birth' => $user->date_of_birth,
        'place_of_birth' => $user->place_of_birth,
        'state' => $user->state,
        'city' => $user->city,
        'zip_code' => $user->zip_code,
        'address' => $user->address,
        'name' => $user->name,
        'surname' => $user->surname,
        'default_currency' => $user->default_currency,
        'default_language' => $user->default_language,
        'default_timezone' => $user->default_timezone,
        'default_country' => $user->default_country
    ]);

    $I->seeResponseCodeIs(Codeception\Util\HttpCode::CREATED);
    $I->seeResponseIsJson();

    $this->private_id= $I->grabDataFromResponseByJsonPath('id')[0];
    $this->access_token_private = $I->login($user->username, $user->password);
}

Все данныегенерируется с помощью faker.

Иногда, когда я запускаю тесты, faker генерирует имя пользователя, которое уже существует на моем сервере, и я получаю ошибку 400.

Существует ли способ повторения создания пользователя до тех пор, пока утверждение $I->seeResponseCodeIs(Codeception\Util\HttpCode::CREATED); не потерпит неудачу?

Заранее спасибо за помощь

...