【发布时间】:2020-01-22 12:20:19
【问题描述】:
我正在尝试设置浏览器的时间,以便进行一些基于时间的验证。不幸的是,当我将时间设置为以下间隔时不会触发。我可以通过勾选手动使间隔触发。有没有办法让时间在设置日期后继续滴答作响?
const dateToSet = new Date(date).getTime()
cy.clock(dateToSet, ["Date"])
【问题讨论】:
标签: javascript automated-tests cypress
我正在尝试设置浏览器的时间,以便进行一些基于时间的验证。不幸的是,当我将时间设置为以下间隔时不会触发。我可以通过勾选手动使间隔触发。有没有办法让时间在设置日期后继续滴答作响?
const dateToSet = new Date(date).getTime()
cy.clock(dateToSet, ["Date"])
【问题讨论】:
标签: javascript automated-tests cypress
只需单独覆盖Date:
cy.clock(Date.UTC(2020, 6, 23), ['Date']);
【讨论】:
查看 cypress 文档,然后可以使用cy.tick() 来模拟时间。
我认为 cypress 假设您在调用时钟时想要自己控制时间,这对我来说听起来是合理的行为。
cy.clock() 使用以下方法生成一个时钟对象:
clock.tick(毫秒)
将时钟移动指定的毫秒数。内的任何计时器 将调用受影响的时间范围。
clock.restore()
恢复所有被覆盖的原生函数。这会自动调用 在测试之间,因此通常不需要。
您还可以通过 this.clock 在 .then() 中访问时钟对象 回调。
【讨论】: