Testare gli oggetti di scena dei componenti è un aspetto cruciale per garantire l'affidabilità e la funzionalità dei componenti React. In qualità di fornitore di Enzyme, comprendo l'importanza di fornire strumenti e tecniche efficaci per testare le applicazioni React. In questo post del blog condividerò preziose informazioni su come testare le proprietà dei componenti con Enzyme, una popolare utility di test JavaScript per React.
Comprendere l'enzima
Enzyme è un'utilità di test JavaScript sviluppata da Airbnb. Fornisce una serie di utilità di test che semplificano il test dei componenti React. Enzyme ti consente di manipolare, attraversare ed eseguire query sull'output dei tuoi componenti React in un modo simile a jQuery. Supporta diverse modalità di rendering, come il rendering superficiale, il rendering DOM completo e il rendering statico, che ti offre flessibilità nel testare i tuoi componenti.
Impostazione dell'ambiente di test
Prima di iniziare a testare le proprietà dei componenti con Enzyme, devi configurare il tuo ambiente di test. Ecco i passaggi per iniziare:
- Installa Enzyme e i suoi adattatori: puoi installare Enzyme e i suoi adattatori utilizzando npm o Yarn. Ad esempio, se stai utilizzando React 16, dovrai installare
enzimaEenzima-adattatore-reagire-16.
npm install --save-dev enzima enzima-adattatore-react-16
- Configura l'adattatore: Nel file di installazione del test, configurare l'adattatore Enzyme. Ecco un esempio:
importa l'enzima da 'enzima'; importa l'adattatore da 'enzyme-adapter-react-16'; Enzyme.configure({ adattatore: nuovo adattatore() });
Testare gli oggetti di scena dei componenti con un rendering poco profondo
Il rendering superficiale è una tecnica che consente di eseguire il rendering di un componente "a un livello di profondità" senza eseguire il rendering di nessuno dei suoi elementi secondari. Ciò è utile per testare i singoli componenti isolatamente. Ecco un esempio di come testare gli oggetti di scena dei componenti utilizzando il rendering superficiale:
importa React da'react'; import { superficiale } da 'enzima'; importa MyComponent da './MyComponent'; description('MyComponent', () => { it('dovrebbe eseguire il rendering con gli oggetti di scena corretti', () => { const props = { title: 'Test Title', descrizione: 'Test Description' }; const wrapper = superficiale(<MyComponent {...props} />); wait(wrapper.prop('title')).toBe('Test Title'); wait(wrapper.prop('description')).toBe('Descrizione del test'); }); });
In questo esempio, stiamo creando un oggetto con gli oggetti di scena che vogliamo passare aMyComponent. Usiamo quindipoco profondoper eseguire il rendering del componente con questi oggetti di scena. Infine, utilizziamo ilpuntellometodo per accedere agli oggetti di scena e fare asserzioni sui loro valori.


Test dei tipi di puntelli
I tipi di oggetti di scena sono un modo per documentare e applicare i tipi di oggetti di scena che un componente si aspetta. Puoi utilizzare Enzyme per verificare che un componente gestisca correttamente i tipi di prop. Ecco un esempio:
importa React da'react'; importa PropTypes da 'prop-types'; import { superficiale } da 'enzima'; const Il mio componente = ({ titolo }) => ( <div>{titolo}</div> ); MyComponent.propTypes = {titolo: PropTypes.string.isRequired}; description('MyComponent', () => { it('dovrebbe lanciare un avviso per l'oggetto mancante', () => { console.error = jest.fn(); superficiale(<MyComponent />); wait(console.error).toHaveBeenCalled(); }); });
In questo esempio, stiamo utilizzandois.fn()spiare ilconsole.erroremetodo. Quindi eseguiamo il rendering del componente senza superare il requisitotitolopuntello. Se la convalida del tipo di prop fallisce, verrà registrato un avviso sulla console e il nostro test verrà superato se il fileconsole.erroreè stato chiamato il metodo
Testare gli oggetti di scena con il rendering DOM completo
Il rendering DOM completo è utile quando è necessario testare l'interazione tra un componente e i suoi elementi secondari o quando è necessario testare il comportamento del componente in un ambiente più realistico. Ecco un esempio di come testare le proprietà dei componenti utilizzando il rendering DOM completo:
importa React da'react'; importa {mount} da 'enzima'; importa MyComponent da './MyComponent'; description('MyComponent', () => { it('dovrebbe eseguire il rendering con le prop corrette utilizzando il rendering DOM completo', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = mount(<MyComponent {...props} />); wait(wrapper.prop('title')).toBe('Test Title'); wait(wrapper.prop('description')).toBe('Descrizione del test'); }); });
In questo esempio, stiamo utilizzando il filemontaremetodo invece dipoco profondo. ILmontareIl metodo rende il componente e i suoi figli in un vero DOM, che ci consente di testare il comportamento del componente in un ambiente più realistico.
Testare gli oggetti di scena con il rendering statico
Il rendering statico è utile quando devi solo generare l'output HTML di un componente senza montarlo nel DOM. Ecco un esempio di come testare gli oggetti di scena dei componenti utilizzando il rendering statico:
importa React da'react'; importa {render} da 'enzima'; importa MyComponent da './MyComponent'; description('MyComponent', () => { it('dovrebbe eseguire il rendering con le proprietà corrette utilizzando il rendering statico', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = render(<MyComponent {...props} />); wait(wrapper.find('h1').text()).toBe('Test Title'); wait(wrapper.find('p').text()).toBe('Descrizione del test'); }); });
In questo esempio, stiamo utilizzando il filerenderemetodo per generare l'output HTML del componente. Possiamo quindi utilizzare selettori simili a jQuery per interrogare l'output e fare asserzioni sugli oggetti di scena.
Applicazioni del mondo reale e prodotti correlati
Nel mondo reale, testare le proprietà dei componenti è essenziale per creare applicazioni React di alta qualità. Nella nostra azienda, non solo forniamo Enzyme, ma offriamo anche una gamma di prodotti correlati che possono migliorare il processo di sviluppo e test. Ad esempio, abbiamoMononucleotide di nicotinammide, che ha potenziali benefici per la salute e può essere utilizzato in varie applicazioni. Offriamo anchePolvere di avocado essiccata biologica fornita in fabbrica, un ingrediente naturale e nutriente. E per le applicazioni industriali, lo abbiamoPrezzo di fabbrica dell'olio di trementina/olio di trementina di alta qualità/olio di trementina minerale, che è ampiamente utilizzato nell'industria manifatturiera.
Conclusione
Testare le proprietà dei componenti con Enzyme è un'abilità essenziale per gli sviluppatori React. Utilizzando il rendering superficiale, il rendering DOM completo e il rendering statico, puoi testare i tuoi componenti in diversi scenari e assicurarti che funzionino come previsto. Che tu sia un principiante o uno sviluppatore esperto, padroneggiare queste tecniche ti aiuterà a creare applicazioni React più affidabili e gestibili.
Se sei interessato all'acquisto di Enzyme o di uno qualsiasi dei nostri altri prodotti, non esitare a contattarci per una discussione sull'approvvigionamento. Ci impegniamo a fornire prodotti di alta qualità e un eccellente servizio clienti.
Riferimenti
- Airbnb. (nd). Enzyme: utilità di test JavaScript per React. Estratto da https://enzymejs.github.io/enzyme/
- Reagire. (nd). React: una libreria JavaScript per la creazione di interfacce utente. Estratto da https://reactjs.org/
- Scherzo. (nd). Jest - Delizioso test JavaScript. Estratto da https://jestjs.io/