Hai! Sebagai pemasok kait, saya sudah cukup lama dalam permainan, dan saya tahu betapa pentingnya menguji kait dengan benar. Salah satu aspek kunci dari pengujian pengujian adalah mengejeknya secara efektif. Jadi, mari selami apa yang saya pikir adalah cara terbaik untuk mengejek kait dalam tes.
Mengapa mengaitkan tes?
Pertama, mengapa kita bahkan perlu mengejek kait? Nah, kait sering berinteraksi dengan sumber daya eksternal seperti API, database, atau fungsi browser yang dibangun - dalam fungsi. Saat kami menulis tes unit, kami ingin mengisolasi komponen atau fungsi yang kami uji. Mocking Hooks memungkinkan kami untuk mengontrol input dan output dari kait ini, membuat tes kami lebih andal dan lebih cepat.
Misalnya, jika Anda menggunakan kait khusus yang mengambil data dari API, Anda tidak ingin mengandalkan API yang sebenarnya tersedia dan mengembalikan data yang konsisten selama pengujian. Sebaliknya, Anda dapat mengejek kait untuk mengembalikan set data yang telah ditentukan.
Berbagai cara untuk mengejek kait
1. Mocking manual
Salah satu cara paling mudah untuk mengejek kait adalah dengan melakukannya secara manual. Katakanlah Anda memiliki kait khusus yang dipanggilUseFetchDataItu mengambil beberapa data dari API.
// useFetchData.js impor {useeffect, usestate} dari 'react'; const useFetchData = () => {const [data, setData] = usestate (null); const [memuat, setloading] = usestate (true); useeffect (() => {const fetchData = async () => {try {const response = menunggu fetch ('https://example.com/api/data'); const result = Await response.json (); setData (hasil); setloading (false);} cate (error) {{{{{{{{{{{error. fetchData ();}, []); return {data, muat}; }; Ekspor Default UseFetchData;
Untuk mengejek secara manual pengait ini dalam tes, Anda dapat membuat implementasi tiruan.
// __mocks __/useFetchData.js const useFetchData = () => {return {data: {pesan: 'Data yang diejek'}, memuat: false}; }; Ekspor Default UseFetchData;
Di file uji Anda, Anda kemudian dapat menggunakan tiruan ini.
impor bereaksi dari 'bereaksi'; impor {render, layar} dari '@testing-library/react'; Impor ComponentThatUsesFetchData dari './componentthatUsesfetchData'; jest.mock ('./ UseFetchData'); Jelaskan ('ComponentThatUseSfetchData', () => {it ('harus menampilkan data yang diejek', () => {render (<componentthateSfetchData />); const dataElement = screen.getByText ('Data mocked'); happeElement (dataElement) .tObeinthedocument ('Mocked Data'); DataElement) .tObeinthedocument ('); (DataElement); ().
Mocking manual memberi Anda kendali penuh atas implementasi tiruan. Anda dapat mengubah nilai pengembalian berdasarkan skenario uji yang berbeda. Namun, ini bisa menjadi sedikit waktu - memakan, terutama jika Anda memiliki banyak kait untuk diejek.
2. Menggunakan Mocking Otomatis Jest
Jest memiliki fitur di mana ia dapat secara otomatis membuat tiruan untuk Anda. Jika Anda memiliki kait dalam file, Jest dapat membuat versi mock dari kait itu dengan beberapa perilaku default.
Misalnya, jika Anda memiliki kait sederhana sepertiusecounter:
// usecounter.js impor {usestate} dari 'react'; const usecounter = () => {const [count, setCount] = usestate (0); const increment = () => setCount (count + 1); return {count, increment}; }; Ekspor Default Usecounter;
Dalam tes Anda, Anda dapat menggunakan Mocking Otomatis Jest.
impor bereaksi dari 'bereaksi'; impor {render, layar} dari '@testing-library/react'; Impor komponenThateSescounter dari './componentthateSescounter'; jest.mock ('./ usecounter'); jelaskan ('componentthatusescounter', () => {it ('harus menggunakan penghitung yang diejek', () => {render (<componentthatusescounter />); // Anda dapat lebih lanjut menyesuaikan mock di sini jika diperlukan // misalnya, jika komponen memanggil kenaikan, Anda dapat memeriksa perilaku mogok});});
Keuntungan menggunakan ejekan otomatis Jest adalah cepat dan mudah diatur. Tetapi mungkin tidak sefleksibel seperti mengejek manual, terutama ketika Anda membutuhkan perilaku tiruan yang sangat spesifik.
3. Menggunakan Perpustakaan Pengujian Bereaksi dan Perpustakaan Pengujian Kait Bereaksi
Perpustakaan pengujian react hooks adalah alat yang hebat untuk menguji kait. Ini memberikan utilitas untuk membuat kait dan menguji perilaku mereka.
Katakanlah Anda memiliki kait yang menghitung jumlah dua angka:
// useum.js impor {usestate} dari 'react'; const useum = (a, b) => {const [sum, setsum] = usestate (a + b); jumlah pengembalian; }; Ekspor Default menggunakan;
Anda dapat menggunakan pustaka pengujian react hooks untuk menguji kait ini dan juga mengejek ketergantungan apa pun jika diperlukan.
impor {renderHook} dari '@testing-library/react-hooks'; Impor menggunakan dari './usesum'; jelaskan ('useum', () => {it ('harus menghitung jumlah dengan benar', () => {const {result} = renderHook (() => useum (2, 3)); harapkan (result.current) .tobe (5);});});
Jika kait Anda memiliki beberapa dependensi eksternal, Anda dapat menggunakan prinsip manual atau lelucon yang sama untuk menanganinya.
Praktik terbaik untuk mengejek kait
- Tetap sederhana: Mocks Anda harus sesederhana mungkin. Mereka hanya perlu meniru perilaku yang dibutuhkan tes Anda. Over - Mocks yang rumit dapat membuat tes Anda sulit dipahami dan dipelihara.
- Uji skenario yang berbeda: Pastikan untuk menguji berbagai skenario dengan mengubah data tiruan. Misalnya, jika kait Anda memiliki status yang berbeda seperti pemuatan, kesuksesan, dan kesalahan, uji semua keadaan ini dengan mengembalikan nilai tiruan yang berbeda.
- Kekhawatiran terpisah: Pisahkan ejek Anda dari kode produksi Anda. Ini membuatnya lebih mudah untuk mengelola dan memperbaruinya saat basis kode Anda berkembang.
Aplikasi Nyata - Dunia dalam Bisnis Kait kami
Sebagai pemasok kait, kami memiliki berbagai jenis kait, sepertiKait Kekuatan Industriyang digunakan dalam aplikasi tugas berat. Ketika kami mengembangkan perangkat lunak untuk mengelola inventaris kami, melacak pesanan, atau menampilkan informasi produk, kami menggunakan kait dalam aplikasi React kami.
Menguji kait ini sangat penting untuk memastikan bahwa perangkat lunak kami bekerja dengan benar. Misalnya, jika kita memiliki kait yang mengambil tingkat stok dari pengait kekuatan industri kita dari database, kita dapat mengejek kait ini dalam tes kita untuk menghindari mengandalkan database yang sebenarnya.
Kami juga memiliki produk sepertiTali ratchet tebal untuk alat beratDanGesper cam plastik 1 inci. Perangkat lunak kami mungkin menggunakan kait untuk menghitung biaya pengiriman, menampilkan detail produk, atau mengelola pesanan pelanggan. Mengejek kait ini membantu kita menulis tes yang andal dan cepat.
Kesimpulan dan ajakan bertindak
Mocking Hooks adalah bagian penting dari pengujian aplikasi bereaksi. Dengan menggunakan teknik yang tepat seperti mengejek manual, mengejek otomatis Jest, atau reaksi perpustakaan pengujian kait, Anda dapat memastikan bahwa kait Anda bekerja seperti yang diharapkan.
Jika Anda berada di pasar untuk kait berkualitas tinggi, apakah itu kait kekuatan industri, tali ratchet tebal untuk alat berat, atau gesper cam plastik 1 inci, kami di sini untuk melayani Anda. Kami menawarkan berbagai macam produk yang dibangun untuk bertahan lama. Jika Anda tertarik untuk membeli produk kami, jangan ragu untuk menghubungi kami untuk diskusi pengadaan. Kami dengan senang hati menjawab pertanyaan yang mungkin Anda miliki dan membantu Anda menemukan produk yang tepat untuk kebutuhan Anda.


Referensi
- Bereaksi dokumentasi resmi
- Dokumentasi Resmi Jest
- React Testing Library Dokumentasi Resmi
- React Hooks Testing Library Dokumentasi Resmi