สมมติว่าฉันเริ่มพัฒนาเกมสวมบทบาทกับตัวละครที่โจมตีตัวละครอื่นและสิ่งต่าง ๆ
ใช้ TDD ฉันสร้างกรณีทดสอบเพื่อทดสอบตรรกะภายในCharacter.receiveAttack(Int)
วิธี บางสิ่งเช่นนี้
@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));
}
บอกว่าผมมี 10 วิธีการทดสอบreceiveAttack
วิธีการ ตอนนี้ผมเพิ่มวิธีการCharacter.attack(Character)
(ที่โทรreceiveAttack
วิธี) และหลังจากที่บางรอบ TDD ทดสอบนั้นผมตัดสินใจ: ควรจะเป็นCharacter.receiveAttack(Int)
private
จะเกิดอะไรขึ้นกับ 10 กรณีทดสอบก่อนหน้า? ฉันควรจะลบมันเหรอ? ฉันควรรักษาวิธีpublic
(ฉันไม่คิดอย่างนั้น)?
คำถามนี้ไม่ได้เกี่ยวกับวิธีการทดสอบวิธีการส่วนตัว แต่วิธีการจัดการกับพวกเขาหลังจากการออกแบบใหม่เมื่อใช้ TDD
internal
หรือเทียบเท่ากับภาษาของคุณเพื่อป้องกันการถูกเปิดเผย ในความเป็นจริงคำตอบของ Kevin Cline เป็นวิธีการเช่นนี้