Diyelim ki diğer karakterlere ve bu tür şeylere saldıran karakterlerle bir rol oyunu geliştirmeye başladım.
TDD'yi uygulayarak, mantık içinde Character.receiveAttack(Int)
yöntemini test etmek için bazı test durumları yapmak . Bunun gibi bir şey:
@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));
}
Diyelim ki 10 yöntem test receiveAttack
yöntemim var. Şimdi bir yöntem ekliyorum Character.attack(Character)
( yöntem çağırıyor receiveAttack
) ve bazı TDD döngüleri test ettikten sonra bir karar vereceğim: Character.receiveAttack(Int)
olmalıdır private
.
Önceki 10 test vakasında ne olur? Onları silmeli miyim? Yöntemi saklamalı mıyım public
(sanmıyorum)?
Bu soru, özel yöntemlerin nasıl test edileceği ile ilgili değildir, ancak TDD uygulanırken yeniden tasarlandıktan sonra bunlarla nasıl başa çıkılacağıyla ilgilidir
internal
açığa çıkmasını önlemek için dilinizle eşdeğer olarak işaretlenebilir . Aslında Kevin Cline'ın cevabı bu tür bir yaklaşımdır.