小编ilo*_*lok的帖子

Cypress 在每次测试之间使用时钟,无需再次访问

我有一个组件每 20 秒调用 api(setInterval)

我想测试 api 如果返回不同的结果,我的组件会显示什么。

cy.clock我尝试使用和加速 setInterval cy.tick,但它仅在第一次测试中有效。

这是我的代码:

// test.cy.ts

before(()=>{
  cy.clock(0,['setInterval'])
  cy.visit('my component url')
})
describe('test clock',()=>{
  it('test1',()=>{
    cy.tick(20000) // work
    // call API successfully
  })
  it('test2',()=>{
    cy.tick(20000) // error, you need to call cy.clock before calling cy.tick
  })
})

Run Code Online (Sandbox Code Playgroud)

我尝试在调用之前在“test2”中添加 cy.clock cy.tick(20000),没有错误,但仍然无法正常工作。(我不知道为什么,但 API 没有被调用)

我在这里尝试答案: cy.clock and cy.tick not work with split code

但出现错误:无法读取 null 的属性(读取“详细信息”)

我想知道这是因为 Cypress 会restore在测试之间自动调用。

时钟需要在 setInterval 之前调用,这可能是我添加新时钟但不起作用的原因。

有没有什么方法可以使用相同的时钟功能而无需再次访问该页面?


编辑:

我已经尝试了下面的两个答案但仍然不起作用

时钟停在 1000 并且不会更改为 2000

我正在使用 …

testing cypress

-1
推荐指数
1
解决办法
465
查看次数

标签 统计

cypress ×1

testing ×1