cy.spy yang memantau fungsi window.clearInterval
P粉023326773
2023-08-17 12:16:34
<p>Dalam aplikasi yang saya sedang bangunkan, saya menggunakan setInterval dan clearInterval. Saya mahu memantau kaedah clearInterval untuk melihat sama ada ia dipanggil. Inilah yang sebenarnya saya lakukan: </p>
<pre class="brush:php;toolbar:false;">beforeEach(() ==> {
cy.clock(Tarikh baharu())
})
it('Senario ujian' => {
const fn = cy.spy(document.defaultView, 'clearInterval')
//Juga mencuba fn = cy.spy(window, 'clearInterval')
...
...
...
//Fungsi clearInterval dipanggil apabila memasuki bahagian `then`, tetapi stub melaporkan bahawa ia belum dipanggil lagi
cy.tick(30000).then(() =>{
jangkakan(fn).untuk.telah.dipanggilSekali
})
})
afterEach(() => {
cy.clock().invoke('restore')
})</pre>
<p>Penegasan jangkaan dalam coretan di atas gagal, saya menjangka ia akan lulus. Adakah logik saya untuk memulakan pengintip itu sah|betul? Sebarang bantuan dengan isu di atas amat dihargai. </p>
Cypress menggunakan
window
。cy.spy(window...
使用的是测试窗口,但要对应用程序窗口进行监视,您需要使用cy.window()
perintah yang berbeza dalam ujian dan aplikasi.Tetapi mungkin terdapat komplikasi lain, kerana
cy.clock()
将clearInterval()
diletakkan dalam proksi supaya anda boleh mengawal fungsi masa aplikasi, jadi anda mungkin tidak dapat memantaunya.Jika anda mendapati ia masih tidak berfungsi dengan baik, sila dapatkan nilai pulangan
cy.clock()
dan lihat jika terdapat maklumat panggilan yang dilampirkan.atau nyatakan bahawa
clearInterval
tidak boleh diproksikan