Cypress如何设置日期而不影响间隔

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)

  • 这节省了我很多时间。 (4认同)

Mik*_*kel -1

查看 cypress 文档,然后您可以使用它cy.tick()来模拟时间。

我认为 cypress 假设你在调用时钟时想要自己控制时间,这对我来说听起来是合理的行为。

cy.clock() 使用以下方法生成一个时钟对象:

时钟.tick(毫秒)

将时钟移动指定的毫秒数。将调用受影响时间范围内的任何计时器。

时钟.恢复()

恢复所有被覆盖的本机函数。这是在测试之间自动调用的,因此通常不需要。

您还可以通过 .then() 回调中的 this.clock 访问时钟对象。

了解更多信息,请访问https://docs.cypress.io/api/commands/clock.html#Syntax