클린 코드 - 9장 단위 테스트
범위
- 9장 단위 테스트
요약
- 실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제 없는 방식이 있다.
- F.I.R.S.T
개념 정리
- TDD 법칙
- 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
- 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
- BUILD-OPERATE-CHECK 패턴
- BUILD: 테스트 자료를 만든다.
- OPERATE: 테스트 자료를 조작한다.
- CHECK: 조작한 결과가 올바른지 확인 한다.
- F.I.R.S.T: 테스트 규칙
- Fast: 테스트는 빨라야 한다.
- Independent: 각 테스트는 서로 의존하면 안 된다.
- Repeatable: 테스트는 어떤 환경에서도 반복 가능해야 한다.
- Self-Validating: 테스트는 부울(bool)값으로 결과를 내야한다.
- Timely: 테스트는 적시에 작성해야 한다.
책에서 기억하고 싶은 내용
- 테스트 코드는 실제 코드 못지 않게 중요하다. 실제 코드 못지 않게 깨끗하게 짜야 한다.
- 실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제 없는 방식이 있다. 대개 메모리나 CPU 효율과 관련 있는 경우다.
- 테스트 당 assert 하나
- ‘단일 assert 문’ 규칙
- assert 문 개수는 최대한 줄여야 좋다.
- 테스트 당 개념 하나
- 개념 당 assert 문 수를 최소로 줄여라
- 테스트 함수 하나는 개념 하나만 테스트 하라
소감
- 당장 빨리빨리만 생각해 동작하는 코드에만 집중하게 되고, 테스트를 소흘하게 된다. 테스트는 모두 자신의 시간을 투자해서 작성해야 하는 문화. 기확자와 상관을 어떻게 설득해야 하는 걸까? ㅠㅠ 이 책을 던저주고 싶다.
This post is licensed under CC BY 4.0 by the author.