Можно ли вызывать cy.server () дважды в одном тесте в Cypress? - PullRequest
0 голосов
/ 17 января 2020
it('Some Test', () => {
  cy.server();
  cy.route('POST', 'my/api1').as('myApi');
  ...
  cy.wait('@api1');

  cy.server();
  cy.route('POST', 'my/api2').as('myApi');
  ...
  cy.wait('@api2');
}

Является ли этот код в порядке, например, есть ли проблема, если мы вызываем cy.server () дважды в одном тесте? В Cypress

Ответы [ 2 ]

1 голос
/ 17 января 2020

Второй cy.server(); вызов не требуется, так как вы ожидаете cy.wait('@myApi'); до завершения предыдущего вызова. Кроме того, второй маршрут такой же, как и первый, поэтому нет необходимости устанавливать его заново, если сервер () не был повторно создан.

Doco :

Невыполненные запросы автоматически прерываются между тестами

Поэтому вам нужно либо дождаться завершения предыдущего, либо инициировать одновременный запуск второго сервера.

it('Some Test', () => {
  cy.server();
  cy.route('POST', 'my/api').as('myApi');
  ...
  cy.wait('@myApi');
  cy.wait('@myApi');
  cy.visit('@myApi');
  cy.wait('@myApi');
  cy.visit('@myApi');      
}
0 голосов
/ 17 января 2020

Я сделал код, как указано выше, чтобы увидеть, есть ли какие-либо последствия, однако не смог их получить!

По сути, я хотел абстрагировать его в функции, подобной этой

Cypress.Commands.add('listenRoute', (type, url, alias) => {
    cy.server();
    cy.route({
        method: type,
        url,
    }).as(alias);
});

Итак, я успешно прошел тестирование без каких-либо ошибок или предупреждений, и, таким образом, делаю вывод, что все в порядке

...