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 })