ในขณะที่มีวิธีการป้องกันการทดสอบหน่วยจากการถูกดำเนินการอะไรคือค่าของการตรวจสอบในการทดสอบหน่วยที่ล้มเหลว?
ฉันจะใช้ตัวอย่างง่ายๆ: Case Sensitivity รหัสปัจจุบันคำนึงถึงขนาดตัวพิมพ์ อินพุตที่ถูกต้องลงในเมธอดคือ "Cat" และจะส่งคืน enum ของ Animal อย่างไรก็ตามฟังก์ชั่นที่ต้องการของวิธีการไม่ควรคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้นหากวิธีการที่อธิบายไว้ถูกส่งผ่าน "cat" มันอาจจะส่งคืนบางอย่างเช่น Animal.Null แทน Animal.Cat และการทดสอบหน่วยจะล้มเหลว แม้ว่าการเปลี่ยนรหัสอย่างง่ายจะทำให้งานนี้เกิดปัญหาที่ซับซ้อนมากขึ้นอาจใช้เวลาหลายสัปดาห์ในการแก้ไข แต่การระบุข้อบกพร่องด้วยการทดสอบหน่วยอาจเป็นงานที่ซับซ้อนน้อยกว่า
แอปพลิเคชันที่กำลังถูกวิเคราะห์มีรหัส 4 ปีที่ "ทำงาน" อย่างไรก็ตามการสนทนาล่าสุดเกี่ยวกับการทดสอบหน่วยได้พบข้อบกพร่องในรหัส บางคนเพียงต้องการเอกสารการใช้งานที่ชัดเจน (เช่นเล็กหรือใหญ่) หรือรหัสที่ไม่ได้ดำเนินการบั๊กตามวิธีที่เรียกใช้ในปัจจุบัน แต่การทดสอบหน่วยสามารถสร้างการดำเนินการตามสถานการณ์เฉพาะที่จะทำให้เกิดข้อบกพร่องที่จะเห็นและเป็นอินพุตที่ถูกต้อง
มูลค่าของการตรวจสอบในการทดสอบหน่วยที่ใช้บั๊กจนกว่าจะมีใครสามารถแก้ไขโค้ดได้
การทดสอบหน่วยนี้ควรตั้งค่าสถานะด้วยการเพิกเฉยลำดับความสำคัญหมวดหมู่และอื่น ๆ เพื่อตรวจสอบว่าการสร้างเสร็จสมบูรณ์ตามการทดสอบที่ดำเนินการหรือไม่ ในที่สุดควรสร้างการทดสอบหน่วยเพื่อเรียกใช้รหัสเมื่อมีคนแก้ไข
ในมือข้างหนึ่งก็แสดงให้เห็นว่าข้อบกพร่องที่ระบุยังไม่ได้รับการแก้ไข ในอีกทางหนึ่งอาจมีการทดสอบหน่วยที่ล้มเหลวหลายร้อยรายการปรากฏขึ้นในบันทึกและกำจัดวัชพืชผ่านการทดสอบที่ควรล้มเหลวและความล้มเหลวเนื่องจากการตรวจสอบรหัสจะยากที่จะหา