cy.spy qui surveille la fonction window.clearInterval
P粉023326773
P粉023326773 2023-08-17 12:16:34
0
1
390

Dans une application que je développe, j'utilise setInterval et clearInterval. Je souhaite surveiller la méthode clearInterval pour voir si elle est appelée. Voici ce que je fais réellement :

beforeEach(() => { cy.clock (nouvelle date ()) }) it('Scénario de test' => { const fn = cy.spy(document.defaultView, 'clearInterval') // J'ai également essayé fn = cy.spy(window, 'clearInterval') ... ... ... //La fonction clearInterval est appelée lors de l'entrée dans la section `then`, mais le stub signale qu'elle n'a pas encore été appelée cy.tick(30000).then(() => { s'attendre à ce que (fn).soit.été.appeléune fois }) }) aprèsEach(() => { cy.clock().invoke('restaurer') }) 

L'assertion expect dans l'extrait ci-dessus échoue, je m'attends à ce qu'elle réussisse. Ma logique d'initialisation de l'espion est-elle valide/correcte ? Toute aide concernant le problème ci-dessus est grandement appréciée.

P粉023326773
P粉023326773

répondre à tous (1)
P粉745412116

Cypress utilise différenteswindowcy.spy(window...使用的是测试窗口,但要对应用程序窗口进行监视,您需要使用cy.window()commandes dans les tests et les applications.

let spy; cy.window().then(appWindow => { spy = cy.spy(appWindow, 'clearInterval') }) ... later expect(spy).to.have.been.calledOnce

Mais il pourrait y avoir une autre complication, carcy.clock()clearInterval()est placé dans le proxy afin que vous puissiez contrôler les fonctions chronométrées de l'application, vous ne pourrez donc peut-être pas la surveiller.

Si vous constatez que cela ne fonctionne toujours pas correctement, veuillez obtenir la valeur de retour decy.clock()et voir si des informations d'appel sont jointes.

let clock; beforeEach(() => { clock = cy.clock(new Date()) })

ou précisez queclearIntervalne doit pas être mandaté

beforeEach(() => { cy.clock(new Date(), ['Date', 'setInterval']) // 仅代理Date和setInterval })
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!