Menguji Swiper dengan Jest
P粉805931281
P粉805931281 2023-08-31 22:35:14
0
1
757
<p>Saya mempunyai komponen yang menggunakan swiper/react. Semasa menulis kes ujian, saya tidak dapat mensimulasikan peristiwa swiper yang diperoleh dalam onSlideChange. Saya tidak boleh melepasi syarat if dalam fungsi onSlideChangeHandler. Ada sesiapa boleh tolong? Terima kasih! </p> <pre class="brush:php;toolbar:false;">import { Swiper, SwiperSlide } daripada 'swiper/react'; eksport fungsi lalai Abcxyz(props: PropsType) { ... ... const onSlideChangeHandler = (swiper) => const activeSlideIndex = swiper.activeIndex; slaid const = swiper.slides; if (slides[activeSlideIndex]?.id === 'hibrid printer bundle') { visibleConfigOptionsStore.setVisibleConfigOptions( slaid[activeSlideIndex].id ); } }; kembali ( <Penyapu onSlideChange={(swiper) => > ) }</pre> <p>Mencuba beberapa perkara tetapi tiada apa yang berjaya setakat ini. </p>
P粉805931281
P粉805931281

membalas semua(1)
P粉384679266

Memandangkan anda tidak mahu menguji Swiper sendiri dan hanya ingin mengesahkan bahawa pengendali anda melaksanakan apabila onSlideChange dicetuskan, anda boleh mengikuti langkah berikut:

  1. Mock Swiper supaya anda boleh menggunakan testId dan klik acara untuk mencetuskan onSlideChange
jest.mock('swiper/react', () => ({
  Swiper: ({ children, onSlideChange }: { children: React.ReactNode; onSlideChange: () => void }) => (
    <div data-testid="swiper" onClick={onSlideChange}>
      {children}
    </div>
  ),
}));
  1. Sekarang cetuskan peristiwa dan buat sebarang penegasan dalam ujian anda:
fireEvent.click(screen.getByTestId('swiper'));
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan