ฉันมักจะเคียงข้างกับเพื่อนร่วมงานของคุณ แต่ขึ้นอยู่กับจุดเท่านั้น
ปัญหาของการทดสอบหน่วยคือพวกเขาเขียนบ่อยครั้งและไม่สนใจในกรณีเล็ก ๆ น้อย ๆ ที่การตรวจสอบรหัสคร่าวๆพบว่ามันจะทำงานไม่ว่าจะเกิดอะไรขึ้น ตัวอย่างเช่น
def add(x, y)
x + y
end
พร้อมกับการทดสอบโหลเพื่อให้แน่ใจว่าการเพิ่มจะใช้งานได้จริงสำหรับกรณีที่เลือกโดยพลการ ดุจ ...
หลักฐานทั่วไปที่อยู่เบื้องหลังการทดสอบหน่วยคือ: หากรหัสของคุณไม่มีข้อบกพร่องนั่นเป็นเพราะคุณยังไม่ได้ทดสอบมากพอ ตอนนี้เมื่อต้องเขียนการทดสอบหน่วยที่เหมาะสม คำตอบ:
- เมื่อคุณกำลังทดสอบ
- เมื่อคุณทำการดีบั๊ก
- ในขณะที่คุณกำลังพัฒนาสิ่งที่ยุ่งยากจริงๆ
ลองผ่านแต่ละคนสมมติว่าคุณกำลังพัฒนาแอปพลิเคชันเว็บบางประเภท
คุณเขียนโค้ดไปยังฟังก์ชันการทำงานใหม่และควรจะทำงานได้ดีพอสมควรในขณะนี้ จากนั้นคุณสามารถเข้าถึงเบราว์เซอร์ของคุณและตรวจสอบว่ามันทำงานได้โดยการทดสอบอย่างเข้มข้นมากขึ้นใช่ไหม? Bzzzt! ... ตอบผิด คุณเขียนการทดสอบหน่วย ถ้าคุณไม่ทำตอนนี้คุณคงไม่ทำ และนี่คือหนึ่งในสถานที่ที่การทดสอบหน่วยทำงานได้ดีมาก: เพื่อทดสอบการทำงานระดับสูง
จากนั้นคุณจะพบข้อบกพร่อง (ที่ไม่เคยพลาดใด ๆ ) นี่นำเราไปสู่ประเด็นที่สอง คุณดำน้ำกลับไปที่รหัสและเริ่มทำตามขั้นตอน เช่นเดียวกับคุณเขียนการทดสอบหน่วยที่จุดแตกหักหลักที่มีข้อมูลที่ถูกต้องและถูกต้องเป็นสิ่งสำคัญ
จุดสุดท้ายคือวิธีอื่น ๆ คุณกำลังออกแบบฟังก์ชั่นบางอย่างที่เกี่ยวข้องกับการเขียนโปรแกรมเมตาดาต้ามากมาย มันวางไข่ต้นไม้ตัดสินใจอย่างรวดเร็วด้วยสถานการณ์ที่อาจเกิดขึ้นหลายพันรายการและคุณต้องตรวจสอบให้แน่ใจว่าแต่ละรายการใช้งานได้จริง เมื่อเขียนสิ่งต่าง ๆ การเปลี่ยนแปลงที่ดูง่าย ๆ ที่นี่หรืออาจมีผลกระทบที่เป็นไปไม่ได้ไกลเกินกว่าห่วงโซ่อาหาร สมมติว่าคุณกำลังออกแบบการใช้งาน MPTT โดยใช้ทริกเกอร์ SQL เพื่อให้สามารถทำงานกับคำสั่งหลายแถวได้
ในสภาพแวดล้อมที่มีหนามเช่นนี้คุณจะต้องทำการทดสอบอัตโนมัติ ดังนั้นคุณจึงเขียนสคริปต์เพื่อสร้างการทดสอบข้อมูลโดยอัตโนมัติและรันการโหลดหน่วยการทดสอบในข้อมูลการทดสอบนี้ สิ่งสำคัญอย่างหนึ่งที่จะไม่ติดตามในขณะที่คุณทำเช่นนี้คือคุณต้องเขียนการทดสอบหน่วยสำหรับเครื่องกำเนิดการทดสอบหน่วยของคุณ
Bottom line: การทดสอบหน่วยใช่แน่นอน แต่คุณควรใช้ฟังก์ชั่นการใช้งานขั้นพื้นฐาน - จนกว่าคุณจะต้องการใช้ในการดีบักหรือตรวจสอบให้แน่ใจว่าฟังก์ชั่นการทำงานที่มีขนดกบางอย่างทำงานได้อย่างถูกต้อง (รวมถึงในกรณีหลัง