Komponen pengujian dalam React adalah bagian penting dari proses pengembangan, memastikan bahwa aplikasi Anda berfungsi seperti yang diharapkan dan tetap stabil saat berkembang. React.strictMode adalah alat berharga yang membantu Anda mengidentifikasi masalah potensial dalam komponen Anda selama pengembangan. Dalam posting blog ini, sebagai pemasok enzim, saya akan memandu Anda melalui proses komponen pengujian dengan react.strictMode menggunakan enzim.
Memahami React.strictMode
React.strictMode adalah komponen pembungkus yang disediakan oleh React yang mengaktifkan pemeriksaan dan peringatan tambahan untuk keturunannya. Itu tidak membuat UI yang terlihat; Sebaliknya, ini membantu Anda menemukan kesalahan umum dan masalah potensial dalam komponen Anda. Saat Anda membungkus bagian dari aplikasi Anda dengan react.strictmode, React akan melakukan pemeriksaan tambahan seperti mendeteksi metode siklus hidup lama, peringatan tentang penggunaan yang tidak tepat dariUSStateDanUsereducerPengait, dan mengidentifikasi efek samping yang tidak terduga.
impor bereaksi dari 'bereaksi'; const app = () => {return (<eact.strictMode> {/ * komponen Anda pergi ke sini */} </react.strictmode>); }; aplikasi default ekspor;
Mengapa menggunakan enzim untuk pengujian?
Enzim adalah utilitas pengujian JavaScript untuk bereaksi yang membuatnya lebih mudah untuk menguji output komponen reaksi Anda. Ini menyediakan serangkaian metode untuk memanipulasi, melintasi, dan meminta DOM virtual komponen reaksi Anda. Dengan enzim, Anda dapat mensimulasikan interaksi pengguna, menguji keadaan komponen, dan memverifikasi output yang diberikan. Sebagai pemasok enzim, saya dapat membuktikan fleksibilitas dan kemudahan penggunaannya, yang menjadikannya pilihan populer di antara pengembang React untuk pengujian.
Menyiapkan lingkungan pengujian
Sebelum Anda mulai menguji komponen Anda dengan react.strictMode menggunakan enzim, Anda perlu mengatur lingkungan pengujian Anda. Pertama, Anda harus menginstal paket yang diperlukan. Jika Anda menggunakan NPM, Anda dapat menjalankan perintah berikut:
instalasi npm-Save-dev Enzyme Enzyme-Adapter-React-16 React-Test-Renderer
Di Sini,enzimadalah utilitas pengujian,Enzim-Adapter-React-16adalah adaptor untuk React 16 (Anda mungkin perlu menyesuaikan versi sesuai dengan versi reaksi Anda), danreact-test-rendererdigunakan untuk membuat komponen bereaksi ke objek javascript murni.
Selanjutnya, Anda perlu mengkonfigurasi enzim untuk menggunakan adaptor. Anda dapat melakukan ini dalam file pengaturan, misalnya,setuptests.js:
Impor enzim dari 'enzim'; adaptor impor dari 'enzim-adapter-react-16'; Enzyme.configure ({adaptor: adaptor baru ()});
Tes menulis dengan react.strictmode dan enzim
Mari kita asumsikan Anda memiliki komponen reaksi sederhana yang disebutTombolItu membuat tombol dengan beberapa teks.
impor bereaksi dari 'bereaksi'; const button = ({text}) => {return <button> {text} </button>; }; tombol default ekspor;
Sekarang, mari kita tulis tes untuk komponen ini menggunakan enzim dan reaksi. StrictMode.
impor bereaksi dari 'bereaksi'; impor {dangkal} dari 'enzim'; tombol impor dari './button'; describe('Button component', () => { it('should render the correct text', () => { const text = 'Click me'; const wrapper = shallow(<React.StrictMode><Button text={text} /></React.StrictMode>); const button = wrapper.find('button'); expect(button.text()).toBe(text); }); });
Dalam tes ini, kami menggunakandangkalMetode memberikan dari enzim untuk membuatTombolkomponen yang dibungkusReact.strictmode. Kemudian, kami menemukantombolelemen menggunakanmenemukanmetode dan verifikasi bahwa teks di dalam tombol cocokteksprop yang kami lewati.
Menguji perubahan status komponen
Enzim juga memungkinkan Anda untuk menguji perubahan status komponen. Katakanlah Anda memiliki komponen yang dipanggilMenangkalyang memiliki variabel negaramenghitungdan tombol untuk menambah jumlah.
impor bereaksi, {usestate} dari 'react'; const counter = () => {const [count, setCount] = usestate (0); const increment = () => {setCount (count + 1); }; return (<dv> <p> count: {count} </p> <tombol onclick = {increment}> increment </aton> </div>); }; penghitung default ekspor;
Inilah cara Anda dapat menguji perubahan status dalam komponen ini:
impor bereaksi dari 'bereaksi'; impor {mount} dari 'enzim'; mengimpor penghitung dari './counter'; jelaskan ('counter component', () => {it ('harus menambah jumlah saat tombol diklik', () => {const wrapper = mount (<react.strictmode> <counter /> </act.strictmode>); const tombol = wrapper.find ('tombol'); const initialcount = Parseint (wrapper.find.find. Button.simulate ('klik');
Dalam tes ini, kami menggunakangunungmetode dari enzim untuk membuatMenangkalkomponen yang dibungkusReact.strictmode. Kami kemudian menemukan tombol, mendapatkan nilai jumlah awal, mensimulasikan klik pada tombol, dan memverifikasi bahwa jumlah telah bertambah.
Metode siklus hidup komponen pengujian
React.strictMode dapat membantu Anda mendeteksi metode siklus hidup lama dalam komponen Anda. Katakanlah Anda memiliki komponen dengan warisanComponentwillreceivePropsmetode.
impor bereaksi, {komponen} dari 'react'; kelas legacyComponent memperluas component {componentWillReceiveProps (nextProps) {// Beberapa logika di sini} render () {return <div> {this.props.text} </div>; }} Ekspor Default LegacyComponent;
Saat Anda menguji komponen ini dengan react.strictMode, React akan mengeluarkan peringatan tentang penggunaan metode siklus hidup lama.
impor bereaksi dari 'bereaksi'; impor {dangkal} dari 'enzim'; impor legacycomponent dari './legacyComponent'; jelaskan ('LegacyComponent', () => {it ('harus diterjemahkan dengan benar', () => {const text = 'hello'; const wrapper = dangkal (<eact.strictmode> <legacyComponent text = {text} /< /react.strictMode>); happeT (wrapper.find ('div').
Peringatan ini membantu Anda mengidentifikasi dan memperbarui komponen Anda untuk menggunakan metode siklus hidup atau kait yang baru.

Menguji kait
Jika komponen Anda menggunakan kait, React.strictMode juga dapat membantu Anda mendeteksi masalah potensial. Misalnya, katakanlah Anda memiliki kait khusus yang mengambil data dari API.
impor bereaksi, {usestate, useeffect} dari 'react'; const useFetch = (url) => {const [data, setData] = usestate (null); const [memuat, setloading] = usestate (true); useEffect (() => {const fetchData = async () => {try {const response = menunggu fetch (url); const json = menunggu response.json (); setData (json);} catch (kesalahan);}};};};};};};};}; return {data, muat}; }; const dataFetcher = ({url}) => {const {data, memuat} = useFetch (url); if (memuat) {return <p> memuat ... </p>; } return <pr Pre> {json.stringify (data, null, 2)} </pri>; }; Ekspor Datafetcher default;
Inilah cara Anda dapat menguji komponen ini:
impor bereaksi dari 'bereaksi'; impor {mount} dari 'enzim'; impor datafetcher dari './datafetcher'; Jelaskan ('DataFetcher Component', () => {it ('harus membuat teks memuat pada awalnya', () => {const url = 'https://example.com/api/data'; const wrapper = mount (<eact.strictmode> <dateFetcher url = {url}//reactmode>) <datafetcher = {url}//reactmode); hargai (wrapper.find ('p'). text ()). tobe ('memuat ...');
React.strictmode akan memastikan bahwaMenggunakan efekkait diuseFetchKait khusus dipanggil dengan benar dan tidak ada efek samping yang tidak terduga.
Kesimpulan
Komponen pengujian dengan react.strictMode menggunakan enzim adalah cara yang efektif untuk memastikan kualitas dan stabilitas aplikasi reaksi Anda. React.strictMode membantu Anda mengidentifikasi masalah potensial di awal proses pengembangan, sementara enzim menyediakan serangkaian alat yang kuat untuk menguji komponen Anda. Sebagai pemasok enzim, saya mendorong Anda untuk memasukkan praktik pengujian ini ke dalam alur kerja pengembangan Anda.
Jika Anda tertarik dengan produk enzim berkualitas tinggi atau persediaan terkait lainnya, kami juga menawarkan berbagai produk sepertiAsclepius pasokan bubuk psicose berkualitas tinggi /bubuk psicose,Fosfatidilserin alami 70%, bubuk fosfatidilserin, DanTrigliserida rantai sedang. Jika Anda memiliki pertanyaan atau ingin mendiskusikan potensi pembelian, jangan ragu untuk menghubungi kami untuk perincian lebih lanjut dan untuk memulai negosiasi pengadaan.
Referensi
- Dokumentasi Bereaksi: https://reactjs.org/docs/strict-mode.html
- Dokumentasi Enzim: https://enzymejs.github.io/enzyme/