cari

Rumah  >  Soal Jawab  >  teks badan

Ujian gagal kerana tiada pernyataan waitFor diletakkan sebelum findBy dalam Pustaka Pengujian React

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粉174151913P粉174151913449 hari yang lalu445

membalas semua(1)saya akan balas

  • P粉248602298

    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.

    balas
    0
  • Batalbalas