오늘은 테스트 코드의 작성 순서와 왜 그런 순서를 따라야 하는지에 대해서 공부했다. 또, 실습을 위한 프로젝트의 기능명세서를 작성하고 어떻게 구현해야 할지에 대한 구상을 했다.
테스트 코드의 작성 대상 정하기
아래 두 가지 규칙에 따라서 어떤 기능의 테스트 코드부터 작성할지 결정한다.
- 구현하기 쉬운 경우에서 어려운 경우로 진행
- 빠르게 테스트를 통과시키기 위하여
- ex. 테스트 해야할 기능이 아래와 같이 3가지가 있을 때, 아래와 같은 순서로 작성한다. 모든 규칙을 충족하는 경우가 구현하기 가장 쉬울 것이고, 1번으로 구현한 것에서 한 가지면 변형되는 2번을 그 다음으로 작성, 마지막으로 3을 작성한다.
- 모든 규칙을 충족하는 경우
- 길이만 8글자 미만이고 나머지 규칙을 충족하는 경우
- 길이가 8글자 이상인 규칙만 충족하는 경우
- 예외적인 경우에서 정상적인 경우로 진행
- 다른 코드들을 많이 작성한 후에 예외 상황에 대해 테스트 하려면 코드의 구조를 뒤집거나, 중복된 처리를 하게될 가능성이 높아진다. 따라서 예외 상황 먼저 처리하는 것이 좋다.
테스트 코드 작성 순서
- 예시를 추가하면서 구현 : 동일 조건의 예를 추가하면서 구현을 일반화 한다.
- 코드 정리 - 중복 제거 : 테스트 코드에서도 중복 된 코드가 있다면 모듈화 -> 이때 @Test 어노테이션은 붙지 않는다.
- 다음 테스트 선택 = 예외 상황 선택 : 계속해서 관련 예외 상황에 대해 처리한다.
- 코드 정리 - 상수를 변수로 : 객체의 메소드 또는 assertEquals와 같은 곳에 상수를 직접 넣은 곳이 있다면 변수로 바꿔준다.
- 관련 예외처리와 코드 정리까지 모두 끝났다면 다음 테스트를 선택하고 위 과정을 반복한다. => 구현하기 쉬운 테스트로 선택
실습을 위해 활용한 것
우아한 테크코스의 프리코스 프로젝트를 활용했다. 아래 프로젝트를 클론 받고, 어떤 기능을 구현해야 하는지 세분화 했다. 기능을 세세하게 나눌 수록, 각각에 대한 테스트 코드를 작성하기 쉽다.
반응형
'서버 > TDD' 카테고리의 다른 글
[TDD 공부-java] 4) 테스트 코드 작성 개선사항 (0) | 2021.07.10 |
---|---|
[TDD 공부-java] 3) 예외 처리 (0) | 2021.06.28 |
[TDD 공부-java] 1) intellij에서 JUnit 설정 및 간단한 테스트 코드 작성 (0) | 2021.04.07 |
[TDD 공부-java] 0) 어떻게 무엇을 공부할지 (0) | 2021.04.07 |