P粉7454121162023-08-18 10:40:22
Cypress在测试和应用程序中使用不同的window
。 cy.spy(window...
使用的是测试窗口,但要对应用程序窗口进行监视,您需要使用cy.window()
命令。
let spy; cy.window().then(appWindow => { spy = cy.spy(appWindow, 'clearInterval') }) ... later expect(spy).to.have.been.calledOnce
但可能还会有另一个复杂性,因为cy.clock()
将clearInterval()
放在代理中,以便可以控制应用程序的定时函数,所以您可能无法对其进行监视。
如果发现仍然无法正常工作,请获取cy.clock()
的返回值,并查看是否附有调用信息。
let clock; beforeEach(() => { clock = cy.clock(new Date()) })
或者指定clearInterval
不应该被代理
beforeEach(() => { cy.clock(new Date(), ['Date', 'setInterval']) // 仅代理Date和setInterval })