cypress.io ждет того же псевдонима - PullRequest
1 голос
/ 28 октября 2019
cy.server();
cy.route('POST', 'my/api').as('myApi');
...
cy.wait('@myApi');
...
cy.route('POST', 'my/api').as('myApi');
cy.wait('@myApi');

Когда мое приложение дважды вызывает один и тот же API в рамках одного и того же теста, из вышеприведенного кода 2-й cy.wait завершается немедленно, так как видит, что первый API уже завершен. Чтобы обойти это, я добавляю случайное число после всех моих псевдонимов маршрута. Это правильный путь?

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Вы могли бы быть лучше. Команда cy.route () - это всего лишь определение, поэтому вы должны сгруппировать все ваши маршруты в верхней части файла. Маршруты должны быть определены только один раз. Затем попробуйте связать ваши ожидания, как в cy.wait().otherStuff().wait() или, по крайней мере, связать ваши ожидания с другими вещами, которые должны преуспеть в первую очередь.

0 голосов
/ 28 октября 2019

Спасибо за вопрос! Я думаю, что предыдущий ответ совершенно прав. По умолчанию, Cypress маршрутизация просто псевдоним. Вы можете найти подобный пример в документации по кипарису здесь .

Итак, ваш код должен выглядеть примерно так:

cy.server();
cy.route('POST', 'my/api').as('myApi');
cy.wait('@myApi').then(() => {
    // You probably want to add some assertions here
});

// Do your stuff here

cy.wait('@myApi').then(() => {
    // Second assertion. Probably, something should be changed in the second request.
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...