Testare i componenti del router React con l'enzima può essere un po 'una testa - graffiante, ma non preoccuparti! Come fornitore di enzimi, ho alcuni suggerimenti e trucchi per aiutarti.
Prima di tutto, capiamo perché è importante testare i componenti del router React. React Router è una libreria super popolare per la gestione del routing nelle applicazioni React. Ti consente di creare applicazioni a pagina singola con viste e navigazione diverse. Ma quando si tratta di testare questi componenti, le cose possono diventare un po 'difficili. È necessario assicurarsi che i percorsi funzionino come previsto, la navigazione è fluida e i componenti giusti vengono resi al momento giusto.


Quindi, come iniziamo a testare i componenti del router React con l'enzima? Bene, la prima cosa che devi fare è impostare il tuo ambiente di test. Dovrai installare l'enzima nel tuo progetto. Se non l'hai già fatto, puoi installarlo usando NPM o filato. Basta correreNPM Installa enzima enzimatico - adattatore - react - [your - react - versione]Ofilato aggiungi enzima enzimatico - adattatore - react - [your - react - versione].
Una volta impostata l'enzima, è necessario importare i moduli necessari nei file di test. Di solito avrai bisognoenzimastesso, l'adattatore per la tua versione react eReagireEReactdom. Ecco una configurazione di base:
L'importazione reava da "REACT '; import {mount} da 'enzyme'; Adattatore di importazione da 'Enzima - Adattatore - React - [Your - React - Version]'; import {configure} da 'enzyme'; configure ({adattatore: new adapter ()});
Ora, parliamo di testare diversi aspetti dei componenti del router React.
Rendering del percorso di test
Una delle cose più elementari che vorresti testare è se il componente giusto viene reso per un determinato percorso. Diciamo che hai un sempliceAppcomponente con alcuni percorsi definiti usandoReact - Router - Dom.
L'importazione reava da "REACT '; import {browserrouter come router, route} da'react - router - dom '; importazione a casa da './home'; importazione da './about'; const app = () => {return (<router> <div> <route esatto path = "/" component = {home}/> <route path = "/circa" component = {circa}/> </div> </router>); }; Esporta app predefinita;
Per testare se ilCasaIl componente è reso quando il percorso è/, puoi usare l'enzimamontarefunzione.
L'importazione reava da "REACT '; import {mount} da 'enzyme'; Import app da './app'; importazione a casa da './home'; Descrivi ('App componente', () => {it ('dovrebbe rendere il componente Home sul percorso radice', () => {const wrapper = mount (<app />); const homecomponent = wrapper.find (home); aspettate (homecomponent.exists ()). tobe (true);});});
Test di navigazione
La navigazione del test è un'altra parte cruciale. Potresti voler testare se fare clic su un link ti porta alla pagina giusta. Supponiamo che tu abbia un link di navigazione nel tuoCasacomponente.
L'importazione reava da "REACT '; import {link} da'react - router - dom '; const home = () => {return (<div> <h1> home page </h1> <link to = "/circa"> about </glink> </div>); }; esportare una casa predefinita;
Per testare questa navigazione, è possibile simulare un clic sulCollegamentoelemento e quindi verificare se l'URL è cambiato come previsto. Puoi usare ilMemoryrouterdaReact - Router - Domper simulare il router in un ambiente di test.
L'importazione reava da "REACT '; import {mount} da 'enzyme'; import {memoryrouter} da'react - router - dom '; importazione a casa da './home'; importazione da './about'; Descrivi ('Home Component Navigation', () => {it ('dovrebbe navigare a circa la pagina sul collegamento Click', () => {const wrapper = mount (<memoryrouter inizialTrenties = {['/']}> <home/> </memoryrouter>); const link = wrapper.find ('link a = "a proposito"]'); link.simula ('clicctrouter>) wrapper.find (circa);
Parametri del percorso di prova
Se i tuoi percorsi hanno parametri, ti consigliamo di testare se i componenti possono gestirli correttamente. Diciamo che hai un percorso come/utente/: idCiò mostra i dettagli dell'utente.
L'importazione reava da "REACT '; import {browserrouter come router, route} da'react - router - dom '; importare userdetails da './userdetails'; const AppWithParams = () => {return (<router> <div> <route path = "/utente/: id" component = {userDetails}/> </div> </router>); }; esportare appwithparams predefiniti;
Per testare questo, puoi usare ilMemoryrouterAncora e passa le voci iniziali con il parametro.
L'importazione reava da "REACT '; import {mount} da 'enzyme'; import {memoryrouter} da'react - router - dom '; importare appwithparams da './appwithparams'; importare userdetails da './userdetails'; Descrivi ('App con parametri di percorso', () => {it ('dovrebbe rendere UserDetails con ID corretto', () => {const wrapper = mount (<memoryrouter inizialtries = {['/utente/123']}> <AppWithParams/> </MemoryRouter>); const UserDetails = wrapper.find (utenteDetails); Aspettate (userDetails.props (). Match.params.id) .Tobe ('123');
Ora, voglio anche menzionare alcuni dei prodotti che offriamo nella nostra azienda. Abbiamo un'ottima selezione di estratti a base di erbe. Se ti piacciono le bevande naturali, dai un'occhiata al nostroTè CBD. È un ottimo modo per rilassarsi e rilassarsi. E per coloro che cercano una spinta proteica, il nostroPolvere proteica del siero di latte/proteina di siero di latte all'ingrosso/proteina siero di latte proteica/proteina del siero di latte/proteina siero di nutrizione ottimaleè top - tacca. Inoltre, se sei sul mercato degli oli essenziali, il nostroPrezzo all'ingrosso olio essenziale naturale al 100%.è un must.
Se sei interessato ad acquistare i nostri prodotti enzimatici o una delle nostre altre offerte, ci piacerebbe fare una chiacchierata con te. Che tu sia una piccola impresa o una grande società, possiamo elaborare un accordo adatto alle tue esigenze. Contattaci e inizieremo la discussione sugli appalti.
Riferimenti
- React Router Documentazione ufficiale
- Documentazione ufficiale enzimatica
Quindi, è così che puoi testare i componenti del router React con l'enzima. All'inizio potrebbe sembrare un po 'complesso, ma con un po' di pratica, sarai un professionista. E se hai domande o hai bisogno di più aiuto, non esitare a contattarsi.