Testowanie komponentów routera React z enzymem mogą być trochę głową - zarysowani, ale nie martw się! Jako dostawca enzymu mam kilka wskazówek i wskazówek, które ci pomogą.
Po pierwsze, zrozummy, dlaczego testowanie komponentów routera jest ważne. React Router to bardzo popularna biblioteka do obsługi routingu w aplikacjach React. Umożliwia tworzenie pojedynczych aplikacji stron z różnymi widokami i nawigacją. Ale jeśli chodzi o testowanie tych komponentów, sprawy mogą stać się nieco trudne. Musisz upewnić się, że trasy działają zgodnie z oczekiwaniami, nawigacja jest płynna, a odpowiednie komponenty są renderowane we właściwym czasie.


Jak więc rozpocząć testowanie komponentów reagowania z enzymem? Cóż, pierwszą rzeczą, którą musisz zrobić, jest skonfigurowanie środowiska testowego. Musisz zainstalować enzym w swoim projekcie. Jeśli jeszcze tego nie zrobiłeś, możesz go zainstalować za pomocą NPM lub przędzy. Po prostu biegnijNPM instaluj enzym enzymu - adapter - React - [Your - React - wersja]Lubprzędza Dodaj enzym enzym - adapter - React - [Your - React - wersja].
Po skonfigurowaniu enzymu musisz zaimportować niezbędne moduły w plikach testowych. Zwykle będziesz potrzebowaćenzymsam, adapter twojej wersji React iZareagowaćIReactdom. Oto podstawowa konfiguracja:
Import reaguj z „react ”; import {Mount} z „enzymu”; Importuj adapter z „enzymu - adapter - React - [Your - React - wersja]”; import {konfiguruj} z „enzymu”; konfiguruj ({adapter: nowy adapter ()});
Porozmawiajmy teraz o testowaniu różnych aspektów komponentów routera React.
Testowanie renderowania trasy
Jedną z najbardziej podstawowych rzeczy, które chcesz przetestować, jest to, czy odpowiedni komponent jest renderowany dla danej trasy. Powiedzmy, że masz prosteAppkomponent z niektórymi trasami zdefiniowanymi za pomocąReact - Router - Dom.
Import reaguj z „react ”; import {Browserrouter as router, trasa} od'react - router - dom '; importować do domu z „./home”; importować z „./about”; const app = () => {return (<POROUTER> <div> <trasa dokładna ścieżka = "/" component = {home}/> <trase ścieżka = "/abook" component = {about}/> </div> </router>); }; Domyślna aplikacja eksportu;
Aby sprawdzić, czyDomkomponent jest renderowany, gdy ścieżka jest/, możesz użyć enzymówuchwytfunkcjonować.
Import reaguj z „react ”; import {Mount} z „enzymu”; Importuj aplikację z „./app”; importować do domu z „./home”; Opisz ('App Component', () => {it ('powinien renderować komponent domowy na ścieżce głównej', () => {const inrper = Mount (<app />); const homecomponent = quapper.find (home); oczekiwaj (homecomponent.exists ()). TOBE (true);});});
Testowanie nawigacji
Testowanie nawigacji to kolejna kluczowa część. Możesz przetestować, jeśli kliknięcie linku zabierze Cię na właściwą stronę. Powiedzmy, że masz link nawigacyjny w swoimDomczęść.
Import reaguj z „react ”; import {link} from'React - Router - DOM '; const home = () => {return (<div> <h1> Strona główna </h1> <link do = "/about"> About </link> </iv>); }; Eksportuj domyślny dom;
Aby przetestować tę nawigację, możesz symulować kliknięciePołączyćelement, a następnie sprawdź, czy adres URL zmienił się zgodnie z oczekiwaniami. Możesz użyćPamięćzReact - Router - Domsymulować router w środowisku testowym.
Import reaguj z „react ”; import {Mount} z „enzymu”; import {MemoryRouter} from'React - Router - Dom '; importować do domu z „./home”; importować z „./about”; Opisz ('Home Component Navigation', () => {it ('powinien przejść do strony o stronie na linku kliknij', () => {contral opraher = munt (<MemoryRoutter inicitcentries = {['/']}> <home/> </pamięć Wrapper.find (About);
Testowanie parametrów trasy
Jeśli twoje trasy mają parametry, będziesz chciał przetestować, czy komponenty mogą je poprawnie obsłużyć. Powiedzmy, że masz taką trasę/użytkownik/: idTo pokazuje dane użytkownika.
Import reaguj z „react ”; import {Browserrouter as router, trasa} od'react - router - dom '; Importuj wartości użytkowników z „./userDetails”; const appWithParams = () => {return (<POROUTER> <div> <trasa ścieżka = "/user/: id” komponent = {userDetails}/> </iv> </router>); }; Eksportuj domyślny appWithParams;
Aby to przetestować, możesz użyćPamięćPonownie i przekaż początkowe wpisy z parametrem.
Import reaguj z „react ”; import {Mount} z „enzymu”; import {MemoryRouter} from'React - Router - Dom '; importować appWithParams z „./appwithparams”; Importuj wartości użytkowników z „./userDetails”; Opisz („App z parametrami trasy”, () => {it ('powinien renderować wartości użytkownika za pomocą poprawnego id', () => {contrapper = munt (<MemoryRoUter initialEntries = {[/user/123 ']}> <appWithParams/> </mementRoUter>); const userDetails = wrapper.find (userDetails); (UserDetails.props (). Match.params.id) .Tobe („123”);
Teraz chcę również wspomnieć o niektórych produktach oferowanych w naszej firmie. Mamy duży wybór ekstraktów ziołowych. Jeśli lubisz naturalne napoje, sprawdź naszeHerbata CBD. To świetny sposób na relaks i relaks. A dla tych, którzy szukają wzmocnienia białka, naszeBiałko serwatkowe proszkowe/hurtowni białko/białko serwatkowe/białko serwatki/białko serwatkowe Optimum Nutritionjest top - wycięcie. Ponadto, jeśli jesteś na rynku olejków eterycznych, nasz100% czystego naturalnego olejku eterycznego mięty / fabrycznej ceny hurtowejjest koniecznością.
Jeśli chcesz kupić nasze produkty enzymatyczne lub którąkolwiek z naszych innych ofert, chcielibyśmy porozmawiać z tobą. Niezależnie od tego, czy jesteś małą firmą, czy dużą korporacją, możemy wypracować umowę, która odpowiada Twoim potrzebom. Po prostu skontaktuj się z nami, a my rozpoczniemy dyskusję na zamówienia.
Odniesienia
- React Router Oficjalna dokumentacja
- Oficjalna dokumentacja enzymatyczna
W ten sposób możesz przetestować komponenty reakcji routera z enzymem. Na początku może to wydawać się nieco złożone, ale z jakąś praktyką będziesz w tym profesjonalistą. A jeśli masz jakieś pytania lub potrzebujesz więcej pomocy, nie wahaj się skontaktować.