У меня есть приложение AngularJS, и я пытаюсь использовать Cypress, чтобы заглушить некоторые сетевые запросы, которые он делает. В настоящее время моя проблема связана с запросом с типом ресурса Img. Я знаю из документации Cypress, что Cypress не может заглушить не-XHR типы / запросы ресурсов, но Я ищу обходной путь .
Мое приложение запрашивает изображение с внутреннего сервера, который я хочу заглушить или подделать. Я предпочитаю не изменять код приложения, а скорее создать внешний обходной путь.
Я изучил следующее и обнаружил, что они бесполезны в этом сценарии:
- Sinon. js - Аналогично может обрабатывать только запросы XHR.
- nock - Заменяет
http.request
узла, но, похоже, это не работает в Cypress. Это может сработать, если я добавлю его прямо в код своего приложения, чего я предпочитаю не делать.
Я также попробовал следующее, но безуспешно:
- mockserver - Запустил mockserver и добавил
expectation
, но ни один из запросов, сделанных к mockserver, не показывал go через. - Service Worker API - Не был уверен, как
register
мой работник службы, так как в качестве входных данных требуется файл .js
. Какой файл .js
будет использоваться в качестве входных данных, если я управляю работником сервиса через Cypress? - фиктивный сервер, использующий express - Проблема в том, что приложение работает на
localhost:<some_port>
, а фиктивный сервер работает на localhost:<some_other_port>
. У меня проблемы с указанием номеров портов при создании запроса через приложение. По сути, мое приложение на самом деле не учитывает разные номера портов.
РЕДАКТИРОВАТЬ:
Я успешно создал фиктивный сервер с использованием express , Согласно документации Cypress, серверы не должны запускаться и останавливаться в пределах before()
и after()
. Вместо этого их следует запускать до запуска Cypress и останавливать после остановки Cypress.