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)
Вышеприведенная команда отобразится в журнале команд как:
При нажатии на команду tick в журнале команд, консоль выведет следующее:
История
| Версия | Изменения |
|---|---|
| 7.0.0 |
log опция добавлена в cy.tick()
|
| 0.18.8 |
cy.tick() команда добавлена |
См. также
© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/tick