Тест Cypress e2e соответствует реальному API, хотя я его и заглушаю - PullRequest
0 голосов
/ 25 октября 2019

У меня есть Cypress-тест, который посещает домашнюю страницу моего приложения:

it('visits homepage', function() {
  cy.visit('http://localhost:3333'); 
}); 

На моей домашней странице есть два вызова API, которые инициируются, и я хочу отключить их, чтобы я мог тестировать различные конфигурации на основена вызовы API. Страница будет выглядеть по-разному в зависимости от данных, которые я получаю от API.

Мой beforeEach выглядит следующим образом:

beforeEach(() => {
    cy.server();

    cy.route(
      'GET',
      'https://myrealapi.com/blah/settings.json?params=abc',
      'fixture:my_fixture_filename_1.json'
    );

    cy.route(
      'GET',
      'https://myrealapi.com/blah/categories.json?params=abc',
      'fixture:my_fixture_filename_2.json'
    );
  });

Когда я запускаю тест в моем тестовом прогоне, он показывает выходные данныекак не заглушенный:

(XHR)
GET 200 /blah/settings.json?params=abc
(XHR)
GET 200 /sockjs-node/info?t=1572007186366
(XHR)
GET 200 /blah/categories.json?params=abc

Я знаю, что он не читается из моего файла фикстур, потому что я изменил некоторые значения, а визуал не обновился, а также не вернул данные в самом вызове API (черезвкладка сети).

Я что-то здесь неправильно настроил?

Обратите внимание, что вызовы относятся к типу fetch, но я использовал обходной путь, предложенный Cypress, чтобы превратить их в XHR

...