บริบทนิดหน่อย: ก่อนหน้านี้วันนี้ฉันต้องอัปเดตรหัส SQL บางส่วนที่เพื่อนร่วมงานคนอื่นของฉันมอบให้และเนื่องจากเป็นสคริปต์ที่ค่อนข้างใหญ่จึงถูกจัดเก็บเป็นไฟล์แยกต่างหาก ในขณะที่ทำสิ่งนี้ฉันได้แนะนำข้อผิดพลาดสองข้อที่เราได้รับกลับไปเมื่อไม่กี่เดือน ได้แก่ :
- ไม่ว่าด้วยเหตุผลใดก็ตามไฟล์ ASCII นั้นถูกเข้ารหัสใน UTF-16 (เพื่อนร่วมงานได้ส่งไฟล์ให้ฉันทางอีเมลซึ่งอาจเป็นสาเหตุให้เกิดปัญหา)
- สคริปต์ขาด
SET
คำสั่งเริ่มต้น(จำเป็นเนื่องจากมีบางสิ่งที่ไดรเวอร์อยู่ในการผลิต แต่ไม่ใช่ในการติดตั้งใหม่ทั้งหมด)
หลังจากแก้ไขจุดบกพร่องนี้ประมาณหนึ่งชั่วโมง (อีกครั้ง) ฉันตัดสินใจที่จะเขียนการทดสอบหน่วยเพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้นอีก (และมีวิธีที่รวดเร็วในการแก้ไขในข้อความยืนยันเพื่อให้แก้ไขได้ง่ายสำหรับนักพัฒนาในอนาคต)
อย่างไรก็ตามเมื่อฉันส่งรหัสนี้ให้เพื่อนร่วมงานคนอื่น (ซึ่งเป็นหัวหน้าทีมของเราด้วย) ก็เดินมาหาฉันและบอกฉันว่าฉันไม่ควรทำสิ่งเหล่านี้อีกเพราะ:
"สิ่งเหล่านี้ไม่ได้อยู่ในการทดสอบหน่วย"
"การทดสอบหน่วยควรใช้เพื่อตรวจสอบการไหลของรหัสของคุณ"
ฉันค่อนข้างจะขัดแย้งกันในขณะนี้เนื่องจากฉันยังคงคิดว่าสิ่งที่ฉันทำไม่ถูกต้องเนื่องจากข้อผิดพลาดนี้จะไม่ได้รับการแนะนำในอนาคตอย่างไรก็ตามเพื่อนร่วมงานคนนี้ทำงานในฐานะผู้อาวุโส เราใช้เวลาของเราไป ฉันควรทำอย่างไร? ฉันทำผิดแบบนี้เหรอ? ถือว่าเป็นการปฏิบัติที่ไม่ดีหรือไม่?