Study/CleanCode
Clean Code - 단위 테스트
Mountain96
2021. 3. 3. 13:14
TDD는 이미 자주 사용하는 개발 방식이라고 한다.
그만큼 그 가치를 사람들에게 인정 받았고, 개발자라면 항상 TDD로 개발하지는 않더라도 한 번쯤은 사용해봐야 한다고 생각한다.
그러나 Clean Code책에서 다룬 TDD 내용은 극소수에 불과했다.
TDD를 따로 사용한 적이 없어 코드 리뷰는 생략했다.
올해 여름에 TDD책을 읽고 따로 정리를 할 예정이다.
포인트
- TDD 법칙
- 실패하는 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 통과하면서 실행은 실패하는 정도로만 작성한다.
- 실제 코드는 현재 테스트를 통과할 정도로만 작성한다.
- 장점
- 실제 코드를 변경할 때 버그에 대한 두려움을 없애주므로 더 자유롭고 유연한 재사용성을 보장한다.
- 방식
- given-when-then 형식
- given : 테스트에 필요한 변수나 환경설정
- when : 상황 발생
- then : 테스트
- TEMPLATE METHOD 패턴(GOF)
- given, when 부분을 부모 클래스로, then을 그 밑의 자식 클래스로 두면 함수간에 중복을 최대한 없앨 수 있다.
- 테스트 함수 당 개념 하나
- 테스트 함수 하나는 하나의 개념만 테스트하며, assert문은 최소로 사용하는 것이 좋다.
- given-when-then 형식
- FIRST
- Fast
- 테스트는 빨리 돌아야 한다.
- Independent
- 테스트함수끼리 의존하면 안된다.
- Repeatable
- 테스트는 어떤 환경에서도 반복가능해야 한다.
- Self-Validating
- 테스트 결과는 bool값을 리턴하여 개발자가 아닌 함수 자체가 테스트의 통과/실패 여부를 결정해야 한다.
- Timely
- 테스트는 실제 코드 구현 직전에 구현해야 한다.
- Fast
느낀점
TDD는 책이 따로 나올 정도로 중요하며 그 내용이 많다.
여기서는 빙산의 일각만 볼 수 있었다.
여름방학때 TDD책을 읽고 TDD를 사용하여 프로젝트를 하나 진행해봐야겠다.