我有一个组件每 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
我正在使用 …