Swiper mit Jest testen
P粉805931281
P粉805931281 2023-08-31 22:35:14
0
1
563
<p>Ich habe eine Komponente, die Swiper/React verwendet. Während ich den Testfall schreibe, kann ich das in onSlideChange erhaltene Swiper-Ereignis nicht simulieren. Ich kann die if-Bedingung in der Funktion onSlideChangeHandler nicht übergeben. Kann jemand helfen? Danke! </p> <pre class="brush:php;toolbar:false;">import { Swiper, SwiperSlide } from 'swiper/react'; Standardfunktion exportieren Abcxyz(props: PropsType) { ... ... const onSlideChangeHandler = (swiper) => const activeSlideIndex = swiper.activeIndex; const slides = swiper.slides; if (slides[activeSlideIndex]?.id === 'Hybriddruckerpaket') { sichtbarConfigOptionsStore.setVisibleConfigOptions( slides[activeSlideIndex].id ); } }; zurückkehren ( <Swiper onSlideChange={(swiper) => onSlideChangeHandler(swiper)} > ) }</pre> <p>Ein paar Dinge ausprobiert, aber bisher hat nichts funktioniert. </p>
P粉805931281
P粉805931281

Antworte allen(1)
P粉384679266

由于您不想测试Swiper本身,只想验证当onSlideChange被触发时,您的处理程序是否执行,您可以按照以下步骤进行:

  1. 模拟Swiper,以便您可以使用testId和click事件来触发onSlideChange
jest.mock('swiper/react', () => ({
  Swiper: ({ children, onSlideChange }: { children: React.ReactNode; onSlideChange: () => void }) => (
    <div data-testid="swiper" onClick={onSlideChange}>
      {children}
    </div>
  ),
}));
  1. 现在在您的测试中触发事件并进行任何断言:
fireEvent.click(screen.getByTestId('swiper'));
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!