Angenommen, ich beginne mit der Entwicklung eines Rollenspiels mit Charakteren, die andere Charaktere und dergleichen angreifen.
Mit TDD mache ich einige Testfälle, um die Logik in der Character.receiveAttack(Int)
Methode zu testen . Etwas wie das:
@Test
fun healthIsReducedWhenCharacterIsAttacked() {
val c = Character(100) //arg is the health
c.receiveAttack(50) //arg is the suffered attack damage
assertThat(c.health, is(50));
}
Angenommen, ich habe 10 Methoden Testmethode receiveAttack
. Jetzt füge ich eine Methode hinzu Character.attack(Character)
(die receiveAttack
Methode aufruft ) und nach einigen TDD-Zyklen, die sie testen, treffe ich eine Entscheidung: Character.receiveAttack(Int)
sollte sein private
.
Was passiert mit den letzten 10 Testfällen? Soll ich sie löschen? Soll ich die Methode beibehalten public
(glaube ich nicht)?
Bei dieser Frage geht es nicht darum, wie private Methoden getestet werden, sondern wie mit ihnen nach einer Neugestaltung bei der Anwendung von TDD umgegangen wird
internal
oder in der entsprechenden Sprache markiert werden , um zu verhindern, dass sie angezeigt wird. In der Tat ist Kevin Clines Antwort diese Art von Ansatz.