เฮ้ ในฐานะผู้จัดหาตะขอฉันอยู่ในเกมมาระยะหนึ่งแล้วและฉันรู้ว่าการทดสอบตะขอนั้นสำคัญแค่ไหน หนึ่งในประเด็นสำคัญของการทดสอบตะขอคือการเยาะเย้ยอย่างมีประสิทธิภาพ ดังนั้นเรามาดำดิ่งลงไปในสิ่งที่ฉันคิดว่าเป็นวิธีที่ดีที่สุดในการเยาะเย้ยตะขอในการทดสอบ
ทำไมต้องเยาะเย้ยตะขอในการทดสอบ?
ก่อนอื่นทำไมเราต้องเยาะเย้ยตะขอ? ตะขอมักจะโต้ตอบกับทรัพยากรภายนอกเช่น APIs ฐานข้อมูลหรือฟังก์ชั่นที่สร้างขึ้นของเบราว์เซอร์ เมื่อเราเขียนการทดสอบหน่วยเราต้องการแยกส่วนประกอบหรือฟังก์ชั่นที่เรากำลังทดสอบ ตะขอล้อเลียนช่วยให้เราสามารถควบคุมอินพุตและเอาต์พุตของตะขอเหล่านี้ทำให้การทดสอบของเราเชื่อถือได้และเร็วขึ้น
ตัวอย่างเช่นหากคุณใช้ตะขอที่กำหนดเองที่ดึงข้อมูลจาก API คุณไม่ต้องการพึ่งพา API จริงที่มีอยู่และส่งคืนข้อมูลที่สอดคล้องกันระหว่างการทดสอบ แต่คุณสามารถเยาะเย้ยตะขอเพื่อส่งคืนชุดข้อมูลที่กำหนดไว้ล่วงหน้า
วิธีที่แตกต่างกันในการเยาะเย้ยตะขอ
1. การเยาะเย้ยด้วยตนเอง
หนึ่งในวิธีที่ตรงไปตรงมาที่สุดในการเยาะเย้ยตะขอคือทำด้วยตนเอง สมมติว่าคุณมีตะขอที่กำหนดเองusefetchdataที่ดึงข้อมูลบางส่วนจาก API
// usefetchdata.js นำเข้า {useeffect, useState} จาก 'react'; const usefetchData = () => {const [data, setData] = useState (null); const [โหลด, setLoading] = useState (จริง); useEffect (() => {const fetchData = async () => {ลอง {const response = รอ fetch ('https://example.com/api/data'); const respect.json (); setData (ผลลัพธ์); fetchData ();}, []); ส่งคืน {ข้อมูลการโหลด}; - ส่งออกค่าเริ่มต้น usefetchdata;
ในการเยาะเย้ยเบ็ดนี้ด้วยตนเองในการทดสอบคุณสามารถสร้างการใช้งานจำลอง
// __mocks __/usefetchData.js const usefetchData = () => {return {data: {message: 'mocked data'}, การโหลด: false}; - ส่งออกค่าเริ่มต้น usefetchdata;
ในไฟล์ทดสอบของคุณคุณสามารถใช้เยาะเย้ยนี้ได้
นำเข้าปฏิกิริยาจาก 'React'; นำเข้า {render, หน้าจอ} จาก '@testing-Library/React'; นำเข้า ComponentThatusesfetchData จาก './ComponentThatUSESFETCHDATA'; jest.mock ('./ usefetchdata'); อธิบาย ('ComponentThatusesfetchData', () => {มัน ('ควรแสดงข้อมูลล้อเลียน', () => {render (<ComponentThataTaTaSeSfetchData />>); const dataElement = screen.getByText ('ข้อมูลจำลอง');
การเยาะเย้ยด้วยตนเองช่วยให้คุณควบคุมการใช้งานจำลองได้อย่างเต็มที่ คุณสามารถเปลี่ยนค่าส่งคืนตามสถานการณ์การทดสอบที่แตกต่างกัน อย่างไรก็ตามอาจเป็นเวลาเล็กน้อย - การบริโภคโดยเฉพาะอย่างยิ่งถ้าคุณมีตะขอมากมายที่จะเยาะเย้ย
2. การใช้การเยาะเย้ยอัตโนมัติของ Jest
Jest มีคุณสมบัติที่สามารถสร้างการเยาะเย้ยให้คุณได้โดยอัตโนมัติ หากคุณมีเบ็ดในไฟล์ Jest สามารถสร้างเบ็ดรุ่นจำลองที่มีพฤติกรรมเริ่มต้นบางอย่าง
ตัวอย่างเช่นหากคุณมีเบ็ดง่ายๆusecounter-
// usecounter.js นำเข้า {useState} จาก 'react'; const usecounter = () => {const [count, setCount] = useState (0); const เพิ่ม = () => setCount (นับ + 1); return {count, เพิ่มขึ้น}; - การส่งออกค่าเริ่มต้น usecounter;
ในการทดสอบของคุณคุณสามารถใช้การเยาะเย้ยอัตโนมัติของ Jest
นำเข้าปฏิกิริยาจาก 'React'; นำเข้า {render, หน้าจอ} จาก '@testing-Library/React'; นำเข้า ComponentThatusescounter จาก './ComponentThatUSescounter'; jest.mock ('./ usecounter'); อธิบาย ('ComponentThatusEscounter', () => {มัน ('ควรใช้ตัวนับล้อเลียน', () => {render (<ComponentThatusEscounter />); // คุณสามารถปรับแต่งการเยาะเย้ยได้ที่นี่หากจำเป็น // ตัวอย่างเช่นหากการเรียกส่วนประกอบเพิ่มขึ้น
ข้อดีของการใช้การเยาะเย้ยอัตโนมัติของ Jest คือการตั้งค่าที่รวดเร็วและง่ายดาย แต่มันอาจจะไม่ยืดหยุ่นเท่ากับการเยาะเย้ยด้วยตนเองโดยเฉพาะอย่างยิ่งเมื่อคุณต้องการพฤติกรรมจำลองที่เฉพาะเจาะจงมาก
3. การใช้ไลบรารีการทดสอบปฏิกิริยาและไลบรารีการทดสอบเบ็ดตอบสนอง
ไลบรารีการทดสอบของ React Hooks เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการทดสอบตะขอ มันให้ระบบสาธารณูปโภคเพื่อแสดงผลและทดสอบพฤติกรรมของพวกเขา
สมมติว่าคุณมีตะขอที่คำนวณผลรวมของตัวเลขสองตัว:
// useum.js นำเข้า {useState} จาก 'react'; const useum = (a, b) => {const [sum, setsum] = useState (a + b); ผลรวมกลับ; - การส่งออกค่าเริ่มต้นใช้งาน
คุณสามารถใช้ไลบรารีการทดสอบของ React Hooks เพื่อทดสอบตะขอนี้และเยาะเย้ยการอ้างอิงใด ๆ หากจำเป็น
นำเข้า {renderhook} จาก '@testing-Library/React-Hooks'; นำเข้าประโยชน์จาก './usesum'; อธิบาย ('useum', () => {มัน ('ควรคำนวณผลรวมอย่างถูกต้อง', () => {const {ผลลัพธ์} = renderhook (() => useum (2, 3)); คาดหวัง
หากเบ็ดของคุณมีการพึ่งพาภายนอกบางอย่างคุณสามารถใช้หลักการเดียวกันกับการเยาะเย้ยด้วยตนเองหรือตลกขบขันเพื่อจัดการกับพวกเขา
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเยาะเย้ยตะขอ
- ให้เยาะเย้ยเรียบง่าย: การเยาะเย้ยของคุณควรจะง่ายที่สุดเท่าที่จะทำได้ พวกเขาเพียงแค่ต้องเลียนแบบพฤติกรรมที่การทดสอบของคุณต้องการ มากกว่า - การเยาะเย้ยที่ซับซ้อนสามารถทำให้การทดสอบของคุณเข้าใจและบำรุงรักษาได้ยาก
- ทดสอบสถานการณ์ต่าง ๆ: ตรวจสอบให้แน่ใจว่าได้ทดสอบสถานการณ์ต่าง ๆ โดยการเปลี่ยนข้อมูลจำลอง ตัวอย่างเช่นหากเบ็ดของคุณมีสถานะที่แตกต่างกันเช่นการโหลดความสำเร็จและข้อผิดพลาดทดสอบสถานะทั้งหมดเหล่านี้โดยการส่งคืนค่าจำลองที่แตกต่างกัน
- แยกข้อกังวล: แยกการเยาะเย้ยออกจากรหัสการผลิตของคุณ สิ่งนี้ทำให้การจัดการและอัปเดตง่ายขึ้นเมื่อ codebase ของคุณวิวัฒนาการ
แอปพลิเคชั่นของจริง - โลกในธุรกิจ Hooks ของเรา
ในฐานะซัพพลายเออร์ตะขอเรามีตะขอประเภทต่าง ๆ เช่นตะขอความแข็งแรงของอุตสาหกรรมที่ใช้ในการใช้งานหนัก เมื่อเราพัฒนาซอฟต์แวร์เพื่อจัดการสินค้าคงคลังติดตามคำสั่งซื้อหรือแสดงข้อมูลผลิตภัณฑ์เราใช้ตะขอในแอปพลิเคชัน React ของเรา
การทดสอบตะขอเหล่านี้เป็นสิ่งสำคัญเพื่อให้แน่ใจว่าซอฟต์แวร์ของเราทำงานได้อย่างถูกต้อง ตัวอย่างเช่นหากเรามีตะขอที่ดึงระดับสต็อกของความแข็งแรงอุตสาหกรรมของเราจากฐานข้อมูลเราสามารถเยาะเย้ยตะขอนี้ในการทดสอบของเราเพื่อหลีกเลี่ยงการพึ่งพาฐานข้อมูลจริง
เรายังมีผลิตภัณฑ์เช่นสายรัดวงล้อหนาสำหรับเครื่องจักรกลหนักและหัวเข็มขัดลูกเบี้ยวขนาด 1 นิ้ว- ซอฟต์แวร์ของเราอาจใช้ตะขอเพื่อคำนวณต้นทุนการจัดส่งแสดงรายละเอียดผลิตภัณฑ์หรือจัดการคำสั่งซื้อของลูกค้า การเยาะเย้ยตะขอเหล่านี้ช่วยให้เราเขียนการทดสอบที่เชื่อถือได้และรวดเร็ว
สรุปและเรียกร้องให้ดำเนินการ
การเยาะเย้ยตะขอเป็นส่วนสำคัญของการทดสอบแอปพลิเคชันที่ตอบสนอง ด้วยการใช้เทคนิคที่ถูกต้องเช่นการเยาะเย้ยด้วยตนเองการเยาะเย้ยอัตโนมัติของ Jest หรือตอบสนองการทดสอบตะขอของ Hooks คุณสามารถมั่นใจได้ว่าตะขอของคุณทำงานตามที่คาดไว้
หากคุณอยู่ในตลาดสำหรับตะขอที่มีคุณภาพสูงไม่ว่าจะเป็นตะขอความแข็งแรงของอุตสาหกรรมสายรัดวงล้อหนาสำหรับเครื่องจักรกลหนักหรือหัวเข็มขัดพลาสติกพลาสติก 1 นิ้วเราอยู่ที่นี่เพื่อให้บริการคุณ เรานำเสนอผลิตภัณฑ์ที่หลากหลายที่สร้างขึ้นเพื่อใช้งานได้นาน หากคุณสนใจที่จะซื้อผลิตภัณฑ์ของเราอย่าลังเลที่จะติดต่อเราเพื่อการอภิปรายการจัดซื้อจัดจ้าง เรายินดีที่จะตอบคำถามใด ๆ ที่คุณอาจมีและช่วยให้คุณค้นหาผลิตภัณฑ์ที่เหมาะสมสำหรับความต้องการของคุณ


การอ้างอิง
- ตอบสนองเอกสารอย่างเป็นทางการ
- Jest Jest Documentation
- ตอบสนองการทดสอบห้องสมุดเอกสารอย่างเป็นทางการ
- React Hooks ทดสอบเอกสารอย่างเป็นทางการของห้องสมุด