Bagaimana cara menguji komponen dengan react.cloneElement in react menggunakan enzim?

Aug 08, 2025

Tinggalkan pesan

James Lee
James Lee
Insinyur proses di pabrik GMP kami. Peran saya melibatkan pemurnian proses ekstraksi untuk memastikan skalabilitas dan konsistensi dalam produksi bubuk tanaman kami sambil mempertahankan standar berkualitas tinggi.

Komponen pengujian dalam React adalah bagian penting dari proses pengembangan untuk memastikan keandalan dan fungsionalitas aplikasi Anda. Salah satu teknik yang kuat dalam pengujian bereaksi adalah menggunakanReact.cloneElementdalam kombinasi dengan enzim. Sebagai pemasok enzim, saya di sini untuk memandu Anda melalui proses pengujian komponen denganReact.cloneElementmenggunakan enzim.

Memahami React.CloneElement

React.cloneElementadalah fungsi yang dibangun - dalam reaksi yang memungkinkan Anda untuk mengkloning elemen bereaksi yang ada dan secara opsional meneruskan alat peraga baru. Ini bisa sangat berguna ketika Anda ingin memodifikasi perilaku atau penampilan komponen selama pengujian. SintaksReact.cloneElementadalah sebagai berikut:

React.cloneElement (elemen, [props], [... anak -anak])

Di Sini,elemenadalah elemen yang ingin Anda klon,alat peragaadalah objek opsional yang berisi alat peraga baru yang ingin Anda lewati ke elemen yang dikloning, dananak-anakadalah anak -anak baru opsional untuk elemen yang dikloning.

Paridis Rhizoma Extract PolyphyllinNatural Organic Beetroot Powder

Menyiapkan lingkungan pengujian

Sebelum kita mulai mengujiReact.cloneElementMenggunakan enzim, kita perlu mengatur lingkungan pengujian yang tepat. Pertama, pastikan Anda telah bereaksi dan enzim yang dipasang di proyek Anda. Anda dapat menginstal enzim dan adaptornya untuk bereaksi menggunakan NPM atau benang:

NPM Instal-Save-Dev Enzyme Enzyme-Adapter-Reac-16

Selanjutnya, konfigurasikan enzim untuk menggunakan adaptor yang sesuai dalam file pengaturan tes Anda. Untuk React 16, akan terlihat seperti ini:

Impor enzim dari 'enzim'; adaptor impor dari 'enzim-adapter-react-16'; Enzyme.configure ({adaptor: adaptor baru ()});

Komponen pengujian dengan react.cloneElement dan enzim

Mari kita asumsikan kita memiliki komponen bereaksi sederhana yang disebutTombolyang menerima adengan disabilitasmenopang:

impor bereaksi dari 'react'; const button = ({disabled, anak -anak}) => {return (<tombol disabled = {disabled}> {anak -anak} </button>); }; tombol default ekspor;

Kami ingin menguji bagaimanaTombolKomponen berperilaku saatdengan disabilitasProp diubah. Kita bisa menggunakannyaReact.cloneElementDalam tes enzim kami untuk mencapai ini.

impor bereaksi dari 'react'; impor {dangkal} dari 'enzim'; tombol impor dari './button'; Jelaskan ('Tombol Komponen', () => {it ('harus dinonaktifkan ketika prop yang dinonaktifkan benar', () => {const originalElement = <button> klik saya </button>; const clonedElement = react.cloneElement (originalElement, {cacat: true}); const crapper = clonedelement (clonedelement); Harapkan (wrapper.find ('tombol'). Prop ('Disabled')). Tobe (true); hargai (wrapper.find ('tombol'). Prop ('Disabled'). Tobe (false));

Dalam tes di atas, pertama -tama kami membuat yang asliTombolelemen. Lalu kami gunakanReact.cloneElementuntuk membuat elemen baru dengan yang diinginkandengan disabilitasmenopang. Akhirnya, kami menggunakan enzimdangkalRender untuk membuat elemen yang dikloning dan periksa apakahdengan disabilitasprop daritombolelemen diatur dengan benar.

Skenario pengujian lanjutan

Dalam skenario yang lebih kompleks, Anda mungkin ingin menguji komponen yang memiliki anak atau komponen bersarang yang bergantung pada konteks. Mari kita pertimbangkan komponen yang dipanggilParentComponentitu menjadikan aChildComponentdi dalamnya:

impor bereaksi dari 'react'; impor pengasuhan anak dari './childcomponent'; const parentComponent = () => {return (<div> <childComponent /> </div>); }; Ekspor Default ParentComponent;

Kita bisa menggunakannyaReact.cloneElementuntuk meneruskan alat peraga tambahan keChildComponentSelama pengujian.

impor bereaksi dari 'react'; impor {dangkal} dari 'enzim'; Impor ParentComponent dari './parentComponent'; impor pengasuhan anak dari './childcomponent'; jelaskan ('ParentComponent', () => {it ('harus meneruskan props tambahan ke childComponent', () => {const wrapper = dangkal (<parentComponent />); const child = wrapper.find (childComponent); const clonedChild = react.cloneElement (child.get.get (0), {{const const clonedChild = react.cloneElement (child.get (0), {testProp: ' dangkal (clonedchild);

Dalam contoh ini, pertama -tama kita dangkal membuatParentComponentdan temukanChildComponentdi dalamnya. Lalu kami gunakanReact.cloneElementuntuk mengkloningChildComponentdan berikan prop baru untuk itu. Akhirnya, kami dangkal membuat kloningChildComponentdan periksa apakah prop baru diatur dengan benar.

Menggunakan react.cloneElement dengan konteks

Konteks React adalah cara untuk berbagi data antara komponen tanpa harus meneruskan alat peraga secara manual melalui setiap tingkat pohon komponen. Anda juga bisa menggunakanReact.cloneElementuntuk menguji komponen yang bergantung pada konteks.

Mari kita asumsikan kita memilikiContextProviderdan aContextConsumerkomponen:

impor bereaksi, {createContext, usecontext} from'react '; const mycontext = createContext (); const ContextProvider = ({anak -anak}) => {const ContextValue = {pesan: 'halo dari konteks'}; return (<mycontext.provider value = {contextValue}> {anak -anak} </mycontext.provider>); }; const contextConsumer = () => {const {pesan} = usecontext (myContext); return <div> {message} </div>; }; Ekspor {ContextProvider, ContextConsumer};

Kita bisa menggunakannyaReact.cloneElementuntuk mengujiContextConsumerkomponen dalam isolasi dengan memberikan nilai konteks tiruan.

impor bereaksi dari 'react'; impor {dangkal} dari 'enzim'; impor {ContextProvider, ContextConsumer} dari './contextComponents'; Jelaskan ('ContextConsumer', () => {it ('harus menampilkan pesan yang benar dari konteks', () => {const mockcontextValue = {pesan: 'mock pesan'}; const originalElement = <contextConsumer /; {ClonedElement} </ContextProvider>);

Kesimpulan

Komponen pengujian denganReact.cloneElementMenggunakan enzim adalah teknik yang kuat yang memungkinkan Anda untuk memodifikasi dan menguji perilaku komponen reaksi dalam berbagai skenario. Apakah Anda menguji komponen sederhana atau kompleks yang mengandalkan konteks,React.cloneElementdapat membantu Anda membuat tes yang lebih kuat dan andal.

Jika Anda tertarik untuk meningkatkan kemampuan pengujian React Anda, Anda mungkin juga tertarik pada beberapa produk terkait kami. Lihat kamiBubuk bit organik alami,Minyak Rosemary, DanParidis Rhizoma Extract Polyphyllin.

Jika Anda memiliki pertanyaan atau tertarik untuk membeli produk enzim kami untuk kebutuhan pengujian Anda, jangan ragu untuk menghubungi kami untuk diskusi terperinci. Kami di sini untuk memberi Anda solusi terbaik untuk persyaratan pengujian bereaksi Anda.

Referensi

  • Bereaksi dokumentasi resmi
  • Dokumentasi Resmi Enzim
Kirim permintaan