Сквозное тестирование функций пользовательского интерфейса, которые появляются после длительной задержки (5 минут) - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь использовать сквозной тестовый бегун, чтобы проверить, что модал появляется с задержкой в ​​5 минут.

Приложение представляет собой одностраничное веб-приложение, в данном случае React, и среду тестирования Cypress, и оно должно работать в конвейере построения и развертывания CircleCI с несколькими средами (тестирование, подготовка, продвижение)

Вот ограничения, которые у меня есть:

  1. Я не могу ждать 5 минут, пока тест не пройдет 50 мс
  2. Если я сделаю задержку настраиваемой в конфигурации приложения, то все тесты, проходящие через эту страницу, будут иметь модальное отображение через 50 мс вместо 5 минут, загрязняя все остальные тесты.
  3. Я бы предпочел не добавлять хуки в приложение только для целей тестирования

Есть ли чистый способ проверить это без задержки, сохраняя его в целом очень быстро?

1 Ответ

1 голос
/ 10 мая 2019

Вы можете использовать cy.clock() для программного управления всеми функциями, связанными со временем, включая setTimeout.

. Примерно так должно работать:

// in your Cypress test...
cy.clock() // activate the clock mocking
// do your cy.visit() after cy.clock()
cy.tick(5 * 60 * 1000) // move time forwards 5 minutes
expect('.my-time-delay-modal').to.exist

В документации больше примеров .

...