Cześć wszystkim, ostatnio widziałem kilka pytań dotyczących testowania w ekosystemie JavaScript. Oto niektóre pytania:
Wyobraźmy sobie, że mamy komponent, który będzie uruchamiał żądanie API, korzystając z useEffectpodpięcia lub useQueryniestandardowego podpięcia. Po otrzymaniu danych niszczymy z nich nazwę i renderujemy. Oto możliwa realizacja
Teraz typowym sposobem na przetestowanie tego byłoby wyrenderowanie naszego komponentu i oczekiwanie, aż nazwa zwrócona przez wywołanie API zostanie wyświetlona na ekranie. Korzystając z React Testing Library, oczekiwany test powinien wyglądać następująco:
Teraz pytanie brzmi, jak upewnić się, że żądania w naszych testach zwracają oczekiwane dane?
axios-mock-adapterto pierwsze rozwiązanie. Pozwala na kpiny z axios, jednocześnie dając bardziej czytelną składnię do jawnego zadeklarowania tego, co chcesz zrobić. W poniższym przykładzie pobieramy odwołanie do axios i tworzymy nową MockAdapter instance. Using this instance, we then use themetodę onGet`, aby upewnić się, że kiedy odpalimy żądanie GET do naszego oczekiwanego adresu URL, zwrócimy żądane dane.
Możesz użyć Jest do samodzielnego wyśmiewania axiosów i unikania instalowania zewnętrznych bibliotek. W poniższym podejściu używamy jest.mockdo mockowania axios, a następnie w naszym teście mockujemy implementację metody get, aby zwrócić nasze oczekiwane dane dla oczekiwanego adresu URL.
Jeśli nie podoba ci się podejście, możesz utworzyć axios.jsplik w __mocks__katalogu i dodać tam następujący fragment.
Kiedy uruchomisz swój test, Jest automatycznie pobierze ten plik i udaje ci axios.
MSW zmieniło sposób, w jaki wszystko testuję. Mimo że mamy wszystkie inne podejścia, o których wspomniałem powyżej, utrzymywanie makiet może szybko eskalować i po pewnym czasie otrzymasz ich kilka. Aby zaoszczędzić czas i scentralizować wszystko, używam MSW.
W tym scenariuszu wszystko, co musimy zrobić, to utworzyć procedurę obsługi dla naszego żądania, która zwraca dane, których oczekujemy. Następnie albo dodajemy procedurę obsługi do naszej listy programów obsługi, albo wywołujemy server.usew naszym teście, aby przesłonić nasze funkcje obsługi .
Jeśli chcesz dowiedzieć się więcej o MSW, przeczytaj mój wpis na blogu o tym.
Jak widać, podczas testowania wywołań API istnieje kilka opcji, z których możesz skorzystać. Chociaż teraz wolę używać MSW, w przeszłości korzystałem ze wszystkich innych opcji.
Mam nadzieję, że ten wpis na blogu okazał się przydatny. Czekajcie na więcej i do zobaczenia następnym razem!
Pierwotnie opublikowane pod adresem https://www.danieljcafonso.com .
Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.
Testowanie jest istotną częścią tworzenia oprogramowania. Zapewnia, że kod jest niezawodny, działa zgodnie z oczekiwaniami i zmniejsza prawdopodobieństwo błędów.
„Będzie mnie chronił, gdy będę w niebezpieczeństwie. Ukryje mnie w swoim namiocie.
Wczoraj zamknęliśmy drzwi tegorocznego Konkursu Piosenki Eurowizji błyskotliwym, chaotycznym wielkim finałem, w którym szwedzka piosenkarka Loreen zabrała do domu trofeum, stając się pierwszą kobietą, która wygrała dwa razy i przywracając koronę Szwecji 50 lat po tym, jak ABBA wygrała konkurs z „Waterloo”. Stali się jednym z największych zespołów w kanonie muzyki pop.
W dzisiejszym hiperpołączonym świecie systemy medialne odgrywają kluczową rolę w kształtowaniu opinii publicznej, a co za tym idzie, w demokratycznym procesie decyzyjnym. W swojej dogłębnej analizie ekonomii politycznej komunikacji uczony Robert McChesney kwestionuje konwencjonalną wiedzę i przedstawia to, co nazywa „pięcioma prawdami” o mediach.
W dzisiejszym szybko zmieniającym się krajobrazie biznesowym koncepcja pracy hybrydowej i zdalnej nabrała bezprecedensowego rozpędu. Ponieważ firmy wciąż dostosowują się do zmieniających się potrzeb i oczekiwań swoich pracowników, eksperci z różnych dziedzin zebrali się, aby omówić korzyści, wyzwania i przyszłość tego transformacyjnego sposobu pracy.