React / Next.js

Testowanie React

React Testing Library, Jest, Vitest, testowanie komponentów, mocking, interakcje użytkownika, coverage

20 pytań z rozmów·
Mid-Level
1

Jaka jest główna różnica między getBy, queryBy i findBy w React Testing Library?

Odpowiedź

getBy rzuca błąd, jeśli element nie istnieje (synchroniczne assertions), queryBy zwraca null, jeśli element nie istnieje (sprawdzanie nieobecności), a findBy zwraca Promise dla elementów asynchronicznych. Używaj getBy domyślnie dla elementów, które muszą istnieć, queryBy, aby zweryfikować, że element nie jest obecny, i findBy, aby czekać na pojawienie się elementu po opóźnieniu.

2

Jaka jest główna zaleta getByRole w porównaniu z getByTestId?

Odpowiedź

getByRole promuje dobre praktyki dostępności, celując w elementy według ich semantycznej roli ARIA (button, textbox, heading), co poprawia dostępność komponentu dla czytników ekranu. getByTestId wymaga dodawania sztucznych atrybutów data-testid, które nie dają żadnej wartości użytkownikowi końcowemu. React Testing Library zaleca priorytetowe używanie getByRole, getByLabelText i getByText przed getByTestId.

3

Jak przetestować warunkowe renderowanie elementu, który NIE jest obecny w DOM?

Odpowiedź

Użyj queryBy, aby zweryfikować brak elementu, ponieważ zwraca null zamiast rzucać błąd. Przykład: expect(screen.queryByText('Error')).toBeNull() lub expect(screen.queryByText('Error')).not.toBeInTheDocument(). getBy rzuciłby błąd i spowodował niepowodzenie testu, podczas gdy findBy czeka na pojawienie się elementu (timeout przy braku).

4

Dlaczego React Testing Library zaleca, aby NIE testować szczegółów implementacji?

5

Jaka jest różnica między render a screen w React Testing Library?

+17 pytań z rozmów

Opanuj React / Next.js na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo