Wes*_*101 7 javascript automated-tests cypress
我正在尝试设置浏览器的时间,以便我可以进行一些基于时间的验证。不幸的是,当我将时间设置为以下间隔时,不会触发。我可以通过勾选来手动触发间隔。有没有办法让设置日期后继续计时?
const dateToSet = new Date(date).getTime()
cy.clock(dateToSet, ["Date"])
Joh*_*str 16
只需单独覆盖即可Date:
cy.clock(Date.UTC(2020, 6, 23), ['Date']);
Run Code Online (Sandbox Code Playgroud)
Mik*_*kel -1
查看 cypress 文档,然后您可以使用它cy.tick()来模拟时间。
我认为 cypress 假设你在调用时钟时想要自己控制时间,这对我来说听起来是合理的行为。
cy.clock() 使用以下方法生成一个时钟对象:
时钟.tick(毫秒)
将时钟移动指定的毫秒数。将调用受影响时间范围内的任何计时器。
时钟.恢复()
恢复所有被覆盖的本机函数。这是在测试之间自动调用的,因此通常不需要。
您还可以通过 .then() 回调中的 this.clock 访问时钟对象。
了解更多信息,请访问https://docs.cypress.io/api/commands/clock.html#Syntax