การทดสอบอุปกรณ์ประกอบฉากเป็นส่วนสำคัญในการรับรองความน่าเชื่อถือและการทำงานของส่วนประกอบ React ในฐานะซัพพลายเออร์เอนไซม์ ฉันเข้าใจถึงความสำคัญของการจัดหาเครื่องมือและเทคนิคที่มีประสิทธิภาพสำหรับการทดสอบแอปพลิเคชัน React ในบล็อกโพสต์นี้ ฉันจะแบ่งปันข้อมูลเชิงลึกอันมีค่าเกี่ยวกับวิธีการทดสอบอุปกรณ์ประกอบฉากส่วนประกอบด้วย Enzyme ซึ่งเป็นยูทิลิตี้ทดสอบ JavaScript ยอดนิยมสำหรับ React
ทำความเข้าใจเกี่ยวกับเอนไซม์
เอนไซม์เป็นโปรแกรมทดสอบ JavaScript ที่พัฒนาโดย Airbnb มีชุดยูทิลิตี้การทดสอบที่ช่วยให้ทดสอบส่วนประกอบ React ได้ง่ายขึ้น เอนไซม์ช่วยให้คุณจัดการ สำรวจ และสืบค้นเอาต์พุตของส่วนประกอบ React ในลักษณะที่คล้ายกับ jQuery รองรับโหมดการเรนเดอร์ที่แตกต่างกัน เช่น การเรนเดอร์แบบตื้น การเรนเดอร์ DOM แบบเต็ม และการเรนเดอร์แบบคงที่ ซึ่งให้ความยืดหยุ่นในการทดสอบส่วนประกอบของคุณ
การตั้งค่าสภาพแวดล้อมการทดสอบ
ก่อนที่คุณจะเริ่มทดสอบอุปกรณ์ประกอบฉากส่วนประกอบด้วย Enzyme คุณต้องตั้งค่าสภาพแวดล้อมการทดสอบของคุณก่อน ต่อไปนี้เป็นขั้นตอนในการเริ่มต้น:
- ติดตั้งเอนไซม์และอะแดปเตอร์: คุณสามารถติดตั้ง Enzyme และอะแดปเตอร์โดยใช้ npm หรือเส้นด้าย ตัวอย่างเช่น หากคุณใช้ React 16 คุณจะต้องติดตั้ง
เอนไซม์และเอนไซม์-อะแดปเตอร์-ปฏิกิริยา-16-
ติดตั้ง npm --save-dev enzyme enzyme-adapter-react-16
- กำหนดค่าอะแดปเตอร์: ในไฟล์การตั้งค่าการทดสอบ ให้กำหนดค่าอะแดปเตอร์เอนไซม์ นี่คือตัวอย่าง:
นำเข้าเอนไซม์จาก 'เอนไซม์'; นำเข้าอะแดปเตอร์จาก 'enzyme-adapter-react-16'; Enzyme.configure ({ อะแดปเตอร์: อะแดปเตอร์ใหม่ () });
การทดสอบอุปกรณ์ประกอบฉากส่วนประกอบด้วยการเรนเดอร์แบบตื้น
การเรนเดอร์แบบตื้นเป็นเทคนิคที่ช่วยให้คุณเรนเดอร์ส่วนประกอบ "ลึกหนึ่งระดับ" โดยไม่ต้องเรนเดอร์ลูกย่อยใดๆ สิ่งนี้มีประโยชน์สำหรับการทดสอบส่วนประกอบแต่ละส่วนแบบแยกส่วน นี่คือตัวอย่างวิธีทดสอบอุปกรณ์ประกอบฉากส่วนประกอบโดยใช้การเรนเดอร์แบบตื้น:
นำเข้าปฏิกิริยาจาก 'ปฏิกิริยา'; นำเข้า { ตื้น } จาก 'เอนไซม์'; นำเข้า MyComponent จาก './MyComponent'; อธิบาย('MyComponent', () => { it('ควรแสดงผลด้วยอุปกรณ์ประกอบฉากที่ถูกต้อง', () => { const props = { title: 'Test Title', คำอธิบาย: 'Test Description' }; const wrapper =ตื้น(<MyComponent {...props} />); คาดหวัง(wrapper.prop('title')).toBe('Test Title'); คาดหวัง(wrapper.prop('คำอธิบาย')).toBe('คำอธิบายการทดสอบ'); }); });
ในตัวอย่างนี้ เรากำลังสร้างวัตถุที่มีอุปกรณ์ประกอบฉากที่เราต้องการส่งผ่านไปส่วนประกอบของฉัน- จากนั้นเราก็ใช้ตื้นเพื่อแสดงส่วนประกอบด้วยอุปกรณ์ประกอบฉากเหล่านี้ ในที่สุดเราก็ใช้ข้อเสนอวิธีการเข้าถึงอุปกรณ์ประกอบฉากและยืนยันเกี่ยวกับคุณค่าของอุปกรณ์เหล่านั้น


การทดสอบประเภทเสา
ประเภทอุปกรณ์ประกอบฉากเป็นวิธีหนึ่งในการบันทึกและบังคับใช้ประเภทของอุปกรณ์ประกอบฉากที่ส่วนประกอบคาดหวัง คุณสามารถใช้เอนไซม์เพื่อทดสอบว่าส่วนประกอบจัดการกับประเภทเสาได้อย่างถูกต้องหรือไม่ นี่คือตัวอย่าง:
นำเข้าปฏิกิริยาจาก 'ปฏิกิริยา'; นำเข้า PropTypes จาก 'prop-types'; นำเข้า { ตื้น } จาก 'เอนไซม์'; const MyComponent = ({ ชื่อ }) => ( <div>{title}</div> ); MyComponent.propTypes = { ชื่อ: PropTypes.string.isRequired }; อธิบาย('MyComponent', () => { it('ควรส่งคำเตือนสำหรับเสาที่หายไป', () => { console.error = jest.fn(); Shallow(<MyComponent />); คาดหวัง(console.error).toHaveBeenCalled(); }); });
ในตัวอย่างนี้ เรากำลังใช้คือ.fn()เพื่อสอดแนมคอนโซล.ข้อผิดพลาดวิธี. จากนั้นเราจะเรนเดอร์ส่วนประกอบโดยไม่ผ่านสิ่งที่จำเป็นชื่อข้อเสนอ หากการตรวจสอบประเภท prop ล้มเหลว คำเตือนจะถูกบันทึกลงในคอนโซล และการทดสอบของเราจะผ่านไปหากคอนโซล.ข้อผิดพลาดได้รับการเรียกวิธีการ
การทดสอบอุปกรณ์ประกอบฉากด้วยการเรนเดอร์ DOM แบบเต็ม
การเรนเดอร์ DOM แบบเต็มมีประโยชน์เมื่อคุณต้องการทดสอบปฏิสัมพันธ์ระหว่างส่วนประกอบและลูก ๆ ของมัน หรือเมื่อคุณต้องทดสอบพฤติกรรมของส่วนประกอบในสภาพแวดล้อมที่สมจริงยิ่งขึ้น ต่อไปนี้เป็นตัวอย่างวิธีทดสอบอุปกรณ์ประกอบฉากส่วนประกอบโดยใช้การเรนเดอร์ DOM แบบเต็ม:
นำเข้าปฏิกิริยาจาก 'ปฏิกิริยา'; นำเข้า { เมานต์ } จาก 'เอนไซม์'; นำเข้า MyComponent จาก './MyComponent'; อธิบาย('MyComponent', () => { it('ควรเรนเดอร์ด้วยอุปกรณ์ประกอบฉากที่ถูกต้องโดยใช้การเรนเดอร์ DOM แบบเต็ม', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = mount(<MyComponent {...props} />); คาดหวัง(wrapper.prop('title')).toBe('Test Title'); คาดหวัง(wrapper.prop('คำอธิบาย')).toBe('คำอธิบายการทดสอบ'); }); });
ในตัวอย่างนี้ เรากำลังใช้เมานต์วิธีการแทนตื้น- ที่เมานต์วิธีการทำให้ส่วนประกอบและลูก ๆ ของมันกลายเป็น DOM จริง ซึ่งช่วยให้เราสามารถทดสอบพฤติกรรมของส่วนประกอบในสภาพแวดล้อมที่สมจริงยิ่งขึ้น
การทดสอบอุปกรณ์ประกอบฉากด้วยการเรนเดอร์แบบคงที่
การเรนเดอร์แบบคงที่มีประโยชน์เมื่อคุณต้องการสร้างเอาต์พุต HTML ของส่วนประกอบโดยไม่ต้องติดตั้งใน DOM ต่อไปนี้เป็นตัวอย่างวิธีทดสอบอุปกรณ์ประกอบฉากส่วนประกอบโดยใช้การเรนเดอร์แบบคงที่:
นำเข้าปฏิกิริยาจาก 'ปฏิกิริยา'; นำเข้า { แสดงผล } จาก 'เอนไซม์'; นำเข้า MyComponent จาก './MyComponent'; อธิบาย('MyComponent', () => { it('ควรเรนเดอร์ด้วยอุปกรณ์ประกอบฉากที่ถูกต้องโดยใช้การเรนเดอร์แบบคงที่', () => { const props = { title: 'Test Title', description: 'Test Description' }; const wrapper = render(<MyComponent {...props} />); คาดหวัง(wrapper.find('h1').text()).toBe('Test Title'); คาดหวัง(wrapper.find('p').text()).toBe('คำอธิบายการทดสอบ'); }); });
ในตัวอย่างนี้ เรากำลังใช้แสดงผลวิธีการสร้างเอาต์พุต HTML ของส่วนประกอบ จากนั้นเราสามารถใช้ตัวเลือกที่คล้ายกับ jQuery เพื่อสอบถามผลลัพธ์และยืนยันเกี่ยวกับอุปกรณ์ประกอบฉาก
การใช้งานจริงและผลิตภัณฑ์ที่เกี่ยวข้อง
ในโลกแห่งความเป็นจริง การทดสอบอุปกรณ์ประกอบฉากส่วนประกอบถือเป็นสิ่งสำคัญสำหรับการสร้างแอปพลิเคชัน React คุณภาพสูง ที่บริษัทของเรา เราไม่เพียงแต่จำหน่ายเอนไซม์เท่านั้น แต่ยังนำเสนอผลิตภัณฑ์ที่เกี่ยวข้องอีกมากมายซึ่งสามารถปรับปรุงกระบวนการพัฒนาและทดสอบของคุณได้ ตัวอย่างเช่นเรามีนิโคตินาไมด์ โมโนนิวคลีโอไทด์ซึ่งมีประโยชน์ต่อสุขภาพและสามารถนำไปใช้ประโยชน์ได้หลากหลาย เรายังนำเสนอโรงงานซัพพลายผงอะโวคาโดแห้งอินทรีย์ซึ่งเป็นส่วนผสมจากธรรมชาติและมีคุณค่าทางโภชนาการ และสำหรับงานอุตสาหกรรมเราก็มีน้ำมันสนคุณภาพสูง/น้ำมันสน ราคาโรงงาน/น้ำมันสนแร่ซึ่งใช้กันอย่างแพร่หลายในอุตสาหกรรมการผลิต
บทสรุป
การทดสอบอุปกรณ์ประกอบฉากส่วนประกอบด้วย Enzyme ถือเป็นทักษะที่จำเป็นสำหรับนักพัฒนา React ด้วยการใช้การเรนเดอร์แบบตื้น การเรนเดอร์ DOM แบบเต็ม และการเรนเดอร์แบบคงที่ คุณสามารถทดสอบส่วนประกอบของคุณในสถานการณ์ต่างๆ และตรวจสอบให้แน่ใจว่าส่วนประกอบเหล่านั้นทำงานได้ตามที่คาดไว้ ไม่ว่าคุณจะเป็นมือใหม่หรือนักพัฒนาที่มีประสบการณ์ การเรียนรู้เทคนิคเหล่านี้อย่างเชี่ยวชาญจะช่วยให้คุณสร้างแอปพลิเคชัน React ที่เชื่อถือได้และบำรุงรักษาได้มากขึ้น
หากคุณสนใจที่จะซื้อเอนไซม์หรือผลิตภัณฑ์อื่นๆ ของเรา โปรดติดต่อเราเพื่อขอคำปรึกษาเรื่องการจัดซื้อจัดจ้าง เรามุ่งมั่นที่จะนำเสนอผลิตภัณฑ์คุณภาพสูงและการบริการลูกค้าที่เป็นเลิศ
อ้างอิง
- แอร์บีแอนด์บี (และ). เอนไซม์ - ยูทิลิตี้การทดสอบ JavaScript สำหรับ React ดึงมาจาก https://enzymejs.github.io/enzyme/
- ตอบสนอง (และ). React - ไลบรารี JavaScript สำหรับสร้างส่วนต่อประสานกับผู้ใช้ ดึงมาจาก https://reactjs.org/
- ล้อเล่น (และ). Jest - การทดสอบ JavaScript ที่น่ายินดี ดึงมาจาก https://jestjs.io/