TDD

kwang·2022년 7월 31일
0

TDD

목록 보기
2/4
post-custom-banner

TDD

TDD란 테스트 주도 개발이라는 뜻으로 개발을 먼저하고 테스트를 하는게 아닌 여러 경우의 수를 테스트코드로 작성하고 테스트에 통과할 수 있도록 개발을 하는 것을 말한다.

레드-그린-리팩터

TDD는 위와 같은 순서를 가진다. 레드는 실패하는 테스트 코드 그 다음 테스트가 단순 통과하는 코드로 변경 이 과정이 그린 통과한 코드를 다시 수정하는 과정 리팩터 이런 순환 과정을 계속해서 반복한다.

테스트 코드 작성순서

  • 쉬운 조건에서 어려운 조건순으로 진행
    예를 들어 값을 검증하는 부분에 대한 테스트를 작성시에 모든 조건이 충족되는 경우부터 각각 경우가 충족되지 않는 경우 순으로 작성하자

  • 예외적인 경우에서 정상인 경우로 진행
    null같은 예외처리를 하지 먼저 하지 않을 경우 예외가 추가될 경우 복잡한 if-else 구조가 추가될 경우가 있다. 이러한 경우를 예방하기 위해서 먼저 예외처리를 진행해보자.

  • 일반화하기
    하나의 테스트 작성시에 특정 값이 리턴되는지 확인하는데 처음에는 원하는 값을 리턴해주는 식으로 코드를 작성시켜 빠르게 테스트가 통과하는 것을 확인한다.
    그 다음 같은 메서드를 테스트하는 코드에 다른 조건 값을 주어 해당 값으로도 테스트가 통과하게끔 하는 일반화 과정이 필요하다.

  • 짧은 주기로 작성하기
    개발시에 생각나는 모든 테스트를 한번에 진행하기보다 테스트 하나씩 진행하며 리팩토링을 진행하기

  • 상황, 실행, 결과
    같은 기능이여도 주어진 상황에 따라 다른 결과를 도출한다. 그렇다면 상황을 세팅하는게 중요한데 각 테스트별로 상황을 설정할 수도 있고 @BeforeEach를 사용하여 테스트가 실행될 때마다 공통된 조건값을 세팅할 수 있다.

post-custom-banner

0개의 댓글