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