다른 캐릭터와 그 종류의 물건을 공격하는 캐릭터로 롤 게임을 시작한다고 가정 해 봅시다.
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의 대답은 이런 종류의 접근 방식입니다.