TDD için oldukça yeniyim ve herhangi bir uygulama kodundan önce geldiğinde ilk testimi oluştururken sorun yaşıyorum. Uygulama kodunun herhangi bir çerçevesi olmadan, istediğim ilk testi yazmakta özgürüm, ancak her zaman sorun hakkında Java / OO düşünce tarzım tarafından lekelenmiş gibi görünüyor.
Örneğin benim Github ConwaysGameOfLifeExample benim yazdım ilk test (rule1_zeroNeighbours) Henüz uygulanmamış bir GameOfLife nesnesi oluşturarak başladı; var olmayan bir set yöntemi, var olmayan bir adım yöntemi, var olmayan bir get yöntemi olarak adlandırılır ve sonra bir iddia kullanılır.
Daha fazla test yazıp yeniden düzenlediğimde testler gelişti, ama aslında böyle bir şeye benziyordu:
@Test
public void rule1_zeroNeighbours()
{
GameOfLife gameOfLife = new GameOfLife();
gameOfLife.set(1, 1, true);
gameOfLife.step();
assertEquals(false, gameOfLife.get(1, 1));
}
Uygulamanın tasarımını bu ilk aşamada bu ilk testi yazmaya nasıl karar verdiğime dayanarak zorladım.
TDD'yi anladığınız şekilde bu iyi mi? Testlerimin ve uygulamamın zaman içinde yeniden düzenleme ile geliştiği için TDD / XP prensiplerini takip ediyor gibi görünüyorum ve bu nedenle bu ilk tasarım işe yaramazsa, değişime açık olurdu, ancak çözüm bu şekilde başlatarak.
İnsanlar TDD'yi başka nasıl kullanıyor? Hiçbir GameOfLife nesnesi, sadece ilkel ve statik yöntemler ile başlayarak daha fazla yeniden düzenleme yineleme olabilirdi ama bu çok tutarlı görünüyor.