Как ждать XHR для стороннего API в Cypress? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть приложение SPA, которое взаимодействует с API, развернутым на другом сервере.Например, когда я нажимаю кнопку «Отправить», он отправляет запрос XHR этому API, и мне нужно дождаться ответа, чтобы проверить его.Как я могу это сделать?

1 Ответ

0 голосов
/ 08 февраля 2019

Поместите это в cypress/support/commands.js:

Cypress.Commands.add('manageMyApiRequests', () => {
    cy.route('/URL/Of/api/I/Want/To/wait/For').as('myApi') 
});

Затем в своем тесте или перед каждым вызовом:

cy.server();
cy.manageMyApiRequests();

Затем, где бы вы ни захотели ждать ответа API, простоdo:

cy.wait('@myApi');

То же самое может быть достигнуто без первой команды кипариса manageMyApiRequests, но я предлагаю вам использовать это для лучшей организации ваших тестов, а затем вы также можете добавить больше apis к той же функции.

К вашему сведению, вы также можете использовать .then(), если хотите что-то проверить в ответе:

cy.wait('@myApi').then((xhr) => {
    // we can now access the low level xhr
    // that contains the request body,
    // response body, status, etc
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...