ฉันกำลังเรียนรู้เกี่ยวกับ TDD และพยายามนำไปใช้ในโครงการส่วนตัวของฉัน ฉันยังใช้การควบคุมเวอร์ชันอย่างกว้างขวางในหลายโครงการเหล่านี้ ฉันสนใจในการทำงานร่วมกันของเครื่องมือทั้งสองนี้ในกระบวนการทำงานทั่วไปโดยเฉพาะอย่างยิ่งเมื่อมันมาถึงจุดสูงสุดเพื่อให้ความมุ่งมั่นเล็ก ๆ นี่คือตัวอย่างบางส่วนที่นึกถึง:
ฉันเริ่มต้นโครงการใหม่และเขียนการทดสอบอย่างง่ายเพื่อสร้างคลาสแบบ as-yet-nonexistent ฉันควรจะทำแบบทดสอบก่อนเขียนชั้นแม้ว่าการทดสอบจะไม่ได้รวบรวม หรือฉันควรเริ่มต้นจำนวนขั้นต่ำของรหัสที่จำเป็นสำหรับการทดสอบเพื่อคอมไพล์ก่อนที่จะคอมมิท?
ฉันพบข้อบกพร่องและเขียนการทดสอบเพื่อสร้างใหม่ ฉันควรคอมมิชชันทดสอบที่ล้มเหลวหรือใช้การแก้ไขข้อบกพร่องแล้วคอมมิท?
เหล่านี้เป็นสองตัวอย่างที่มาถึงใจทันที อย่าลังเลที่จะให้ตัวอย่างเพิ่มเติมในคำตอบของคุณ
แก้ไข:
ฉันตั้งสมมติฐานในทั้งสองตัวอย่างว่าทันทีหลังจากเขียนการทดสอบฉันจะเขียนโค้ดเพื่อทำการทดสอบ สถานการณ์อื่นอาจเกิดขึ้น: ฉันทำงานในโครงการที่ใช้ TDD เป็นเวลาหลายชั่วโมงโดยไม่ต้องทำอะไร ในที่สุดเมื่อฉันลงมือทำฉันต้องการที่จะเลิกงานของฉันเป็นชิ้นเล็ก ๆ (Git ทำให้สิ่งนี้ค่อนข้างง่ายแม้ว่าคุณต้องการจะยอมรับการเปลี่ยนแปลงบางอย่างในไฟล์เดียว)
ซึ่งหมายความว่าคำถามของฉันเป็นเรื่องเกี่ยวกับสิ่งที่จะกระทำตามที่เป็นอยู่เมื่อใดที่จะกระทำ