ฉันค่อนข้างใหม่สำหรับ TDD และฉันมีปัญหาในการสร้างการทดสอบครั้งแรกของฉันเมื่อมันมาก่อนรหัสการติดตั้งใด ๆ หากไม่มีกรอบในการติดตั้งโค้ดฉันมีอิสระที่จะเขียนการทดสอบครั้งแรกของฉันได้ แต่ฉันต้องการ แต่มันก็ดูจะเสียไปโดยวิธีการคิดแบบ Java / OO ของฉันเสมอ
ตัวอย่างเช่นในGithub ConwaysGameOfLifeของฉันตัวอย่างการทดสอบครั้งแรกที่ฉันเขียน (rule1_zeroNeighbours) ฉันเริ่มต้นด้วยการสร้างวัตถุ GameOfLife ที่ยังไม่ได้ใช้งาน เรียกว่าชุดวิธีการที่ไม่มีอยู่วิธีการขั้นตอนที่ไม่มีอยู่วิธีรับที่ไม่มีอยู่แล้วใช้การยืนยัน
การทดสอบพัฒนาขึ้นเมื่อฉันเขียนการทดสอบและปรับโครงสร้างใหม่ แต่เดิมแล้วมันมีลักษณะดังนี้:
@Test
public void rule1_zeroNeighbours()
{
GameOfLife gameOfLife = new GameOfLife();
gameOfLife.set(1, 1, true);
gameOfLife.step();
assertEquals(false, gameOfLife.get(1, 1));
}
สิ่งนี้รู้สึกแปลก ๆ เนื่องจากฉันถูกบังคับให้ออกแบบการนำไปใช้ตามวิธีที่ฉันตัดสินใจในช่วงแรกนี้เพื่อเขียนการทดสอบครั้งแรก
ในวิธีที่คุณเข้าใจ TDD มันโอเคไหม? ฉันดูเหมือนจะปฏิบัติตามหลักการ TDD / XP ในการทดสอบและการใช้งานของฉันที่พัฒนาตลอดเวลาด้วยการปรับโครงสร้างใหม่และดังนั้นหากการออกแบบเริ่มต้นนี้ได้พิสูจน์แล้วว่าไร้ประโยชน์มันจะเปิดให้มีการเปลี่ยนแปลง แต่รู้สึกว่าฉันกำลังบังคับทิศทาง วิธีแก้ปัญหาโดยเริ่มต้นด้วยวิธีนี้
คนอื่นใช้ TDD อย่างไร ฉันสามารถผ่านการทำซ้ำซ้ำของการปรับโครงสร้างใหม่โดยเริ่มต้นโดยไม่มีวัตถุ GameOfLife เฉพาะวิธีดั้งเดิมและแบบคงที่ แต่ดูเหมือนว่าจะถูกวางแผนเกินไป