Spec-Zone.ru › Cypress

tick

Переместить время после переопределения родной функции времени с помощью cy.clock().

cy.clock() необходимо вызвать перед cy.tick(), чтобы сначала переопределить родные функции времени.

Синтаксис

cy.tick(milliseconds, options)

Использование

Правильное использование

cy.tick(500)

Аргументы

milliseconds (Число)

Количество milliseconds для перемещения часов. Все таймеры в затронутом диапазоне времени будут вызваны.

options (Объект)

Передайте объект опций для изменения поведения по умолчанию cy.tick().

Опция Значение по умолчанию Описание
log true Отображает команду в журнала команд

Возвращаемые значения

cy.tick() возвращает объект clock с последующими методами:

  • clock.tick(milliseconds)

    Переместить часы на определенное количество миллисекунд. Все таймеры в затронутом диапазоне времени будут вызваны.

  • clock.restore()

    Восстановить все переопределенные родные функции. Это автоматически вызывается между тестами, поэтому обычно не требуется.

Вы также можете получить доступ к объекту clock через this.clock в .then() коллбэке.

Примеры

Миллисекунды

Создать часы и переместить время, чтобы запустить setTimeout

// app code loaded by index.html
window.addIntro = () => {
  setTimeout(() => {
    document.getElementById('#header').textContent = 'Hello, World'
  }, 500)
}
cy.clock()
cy.visit('/index.html')
cy.window().invoke('addIntro')
cy.tick(500)
cy.get('#header').should('have.text', 'Hello, World')

Использование cy.clock() с cy.tick()

Посмотрите наш пример рецепта тестирования подмены и слежения за временем

Восстановить часы

Вы можете восстановить часы и позволить вашему приложению возобновить нормальную работу без манипулирования родными глобальными функциями, связанными со временем. Это автоматически вызывается между тестами.

cy.clock()
cy.visit('http://localhost:3333')
cy.get('#search').type('Acme Company')
cy.tick(1000)
// more test code here

// restore the clock
cy.clock().then((clock) => {
  clock.restore()
})
// more test code here

Вы также можете восстановить, используя .invoke(), чтобы вызвать функцию restore.

cy.clock().invoke('restore')

Правила

Требования

  • cy.tick() требует цепочки вызова из cy .
  • cy.tick() требует, чтобы cy.clock() был вызван перед ним.

Утверждения

  • cy.tick() - это утилитарная команда.
  • cy.tick() не будет запускать утверждения. Утверждения пройдут как если бы эта команда не существовала.

Таймауты

  • cy.tick() не может истечь.

Журнал команд

Создать часы и установить время на 1 секунду

cy.clock()
cy.tick(1000)

Вышеприведенная команда отобразится в журнале команд как:

Console Log tick

При нажатии на команду tick в журнале команд, консоль выведет следующее:

Console Log tick

История

Версия Изменения
7.0.0 log опция добавлена в cy.tick()
0.18.8 cy.tick() команда добавлена

См. также

  • cy.clock()
  • cy.spy()
  • cy.stub()
  • Руководство: Подстановки, шпионские программы и часы
  • Рецепт: Подстановка, слежение

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/tick

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API