【问题标题】:Cypress how to set the date without affecting intervals赛普拉斯如何在不影响间隔的情况下设置日期
【发布时间】:2020-01-22 12:20:19
【问题描述】:

我正在尝试设置浏览器的时间,以便进行一些基于时间的验证。不幸的是,当我将时间设置为以下间隔时不会触发。我可以通过勾选手动使间隔触发。有没有办法让时间在设置日期后继续滴答作响? const dateToSet = new Date(date).getTime() cy.clock(dateToSet, ["Date"])

【问题讨论】:

    标签: javascript automated-tests cypress


    【解决方案1】:

    只需单独覆盖Date

    cy.clock(Date.UTC(2020, 6, 23), ['Date']);
    

    【讨论】:

    • 这为我节省了很多时间。
    【解决方案2】:

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

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

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

    clock.tick(毫秒)

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

    clock.restore()

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

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

    阅读更多https://docs.cypress.io/api/commands/clock.html#Syntax

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      相关资源
      最近更新 更多