บางคนจะพูดเป็นอย่างอื่น แต่ฉันขอแนะนำให้คุณแยก TDD และการทดสอบหน่วยออกจากกัน TDD ค่อนข้างจะเปลี่ยนใจและการทดสอบหน่วยปรากฏขึ้นครั้งแรกเพื่อใช้เวลา หากคุณคิดว่าสิ่งเหล่านั้นเป็นสิ่งหนึ่งมีความเสี่ยงที่คุณจะไม่เห็นประโยชน์มากพอในทันทีและจะมีการล่อลวงเพียงแค่วาง TDD และการทดสอบหน่วยด้วย
สิ่งแรกคือการเขียนการทดสอบหน่วย พวกเขาไม่จำเป็นต้องสมบูรณ์แบบในตอนแรก เพียงแค่สอนตัวเองถึงวิธีทดสอบโค้ดขนาดเล็กและวิธีใช้การเยาะเย้ยเพื่อแยกส่วนประกอบ
นี่เป็นคนเก็บบันทึกเวลาที่ใหญ่ที่สุด แต่มีรายได้มากที่สุด เมื่อคุณสังเกตเห็นว่าคุณไม่ต้องผ่านหน้าเว็บอีก 14 หน้าเพื่อไปยังหน้าทดสอบที่คุณต้องการคุณจะรู้ว่าฉันกำลังพูดถึงอะไร
สำหรับฉันช่วงเวลาสำคัญของยูเรก้าคือแอพ Windows ที่ฉันพยายามทดสอบ regex ซึ่งต้องใช้ฉันกรอกแบบฟอร์มสองแบบก่อนที่จะไปถึงได้ ฉันติดตั้ง NUnit และเขียนการทดสอบรอบ ๆ วิธีนั้นและดูว่าฉันประหยัดเวลาในการทดสอบได้เร็วแค่ไหน จากนั้นฉันเพิ่มการทดสอบเพิ่มเติมเพื่อจัดการกับเคสแบบขอบ และอื่น ๆ
จากนั้นเรียนรู้การเขียนการทดสอบหน่วยดี เรียนรู้สมดุลระหว่างการทดสอบแบบเปราะซึ่งเขียนและทดสอบได้อย่างรวดเร็ว เรื่องนี้ค่อนข้างง่าย บทเรียนคือการทดสอบแต่ละอย่างนั้นเป็นการทดสอบเพียงอย่างเดียว แต่คุณเรียนรู้ได้อย่างรวดเร็วว่าต้องใช้เวลานานแค่ไหนดังนั้นคุณจึงเริ่มก้มกฎนิดหน่อยจนกว่าคุณจะเขียนบททดสอบที่หยุดพักในการเปลี่ยนรหัสทุกครั้ง (ซึ่งอยู่ใกล้กับอดีตมากกว่าหลัง)
ดังที่ฉันได้กล่าวไว้ว่า TDD เป็นการเปลี่ยนแปลงทางจิตใจครั้งสำคัญในแบบที่คุณทำงาน อย่างไรก็ตามจะไม่เพิ่มเวลามากในกระบวนการพัฒนาของคุณเมื่อคุณเขียนการทดสอบอยู่แล้ว และฉันขอสัญญาว่าคุณจะเห็นรูปแบบการเข้ารหัสของคุณดีขึ้นต่อหน้าต่อตา หรือถ้าคุณไม่ทำมันก็ไม่เหมาะกับคุณ
สิ่งสุดท้ายที่ควรคำนึงถึงคือ TDD ไม่ จำกัด เฉพาะการทดสอบหน่วย การออกแบบเพื่อทดสอบการยอมรับเป็นส่วนหนึ่งของ TDD อีกเหตุผลที่ดีที่จะไม่รวมในใจของคุณ