Rumah > Soal Jawab > teks badan
rreeee
Saya menulis ujian di mana pengguna mengklik butang. Butang menghantar permintaan rangkaian, dan jika 200 dikembalikan, pemasa dipaparkan dan mula mengira dalam beberapa saat. Saya menggunakan MSW untuk mengembalikan respons olok-olok. Memandangkan permintaan rangkaian jelas tidak segerak, saya mencari pemasa ini dengan menunggu screen.findByRole dipanggil. Masalah yang saya hadapi ialah ujian hanya lulus apabila userEvent.click(startTimerButton)
和调用await screen.findByRole('cell', {name: /00:00/i})
之间调用await waitFor(() => {})
dipanggil. Nampaknya ujian ini hanya lulus jika saya membiarkannya tidur seketika sebelum mencari pemasa. Saya tidak faham mengapa saya tidak dapat memulakan pemasa carian dengan segera.
Tanpa kenyataan waitFor, mesej ralat yang saya dapat ialah:
Ralat: Balingan: "Tamat masa ujian melebihi 5000 ms. Jika ini adalah ujian yang berjalan lama, gunakan jest.setTimeout(newTimeout) untuk meningkatkan nilai tamat masa. " var evt = document.createEvent('event'); TypeError: Tidak boleh membaca sifat 'createEvent' null
Ada sesiapa tahu sebabnya? Saya harap saya tidak perlu mengelilinginya seperti yang saya lakukan sekarang.
Saya juga cuba menukar findBy await saya kepada getBy yang dibungkus dalam pernyataan waitFor, tetapi itu juga tidak berjaya. Nampaknya saya hanya perlu membiarkannya tidur seketika dan kemudian mula mencari.
P粉2486022982023-09-10 10:14:46
Apa yang anda tiada dalam baris iniawait
:
userEvent.click(startTimerButton);
Jadi cubalah:
await userEvent.click(startTimerButton);
Setakat versi 14, userEvent
API adalah tak segerak.