오늘 읽은 범위
- 9장. 단위 테스트
기억하고 싶은 내용
- TDD 법칙 세 가지 (p.155)
- 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
- 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
- 깨끗한 테스트 코드 유지하기 (p.156)
- 테스트 코드는 실제 코드 못지않게 중요하다.
- 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 테스트 케이스가 있으면 변경이 쉬워지기 때문이다.
- 깨끗한 테스트 코드 (p.158)
- 깨끗한 테스트 코드를 만드는데 가독성이 중요하다.
- 테스트 코드를 도메인에 특화된 언어(DSL)로 리팩터링 해야 한다.
- 테스트 코드에 적용하는 표준은 실제 코드에 적용하는 표준과 달라도 된다.
- 테스트 당 assert 하나 (p.165)
- 단일 assert 문이 아니라도 assert 문 개수는 최대한 줄이는 것이 좋다.
- 테스트 함수마다 한 개념만 테스트하라
- F.I.R.S.T. (p.167)
- 빠르게(Fast): 테스트는 빨라야 한다.
- 독립적으로(Independent): 각 테스트는 서로 의존하면 안 된다.
- 반복 가능하게(Repeatable): 테스트는 어떤 환경에서도 반복 가능해야 한다.
- 자가 검증하는(Self-Validating): 테스트는 부울(bool) 값으로 결과를 내야 한다.
- 적시에(Timely): 테스트는 적시에 작성해야 한다.
- 테스트 코드가 방치되어 망가지면 실제 코드도 망가진다. 테스트 코드를 깨끗하게 유지하자.
소감 및 생각
- 테스트를 작성하지 않았던 시절을 생각해보면 어떻게 개발을 했었나 모를 정도이다. 테스트 코드를 작성함으로써 심리적으로 안정감을 가질 수 있고 프로그램의 품질도 높일 수 있는 것 같다.
- 테스트 코드는 작성하는 것도 중요하지만, 깨끗하게 유지하는 것이 더 중요하다고 생각한다. 그러기 위해서는 유지보수성이 좋도록 가독성 있게 테스트 코드를 작성해야 한다.
새롭게 배운 개념
- Build-Operate-Check 패턴: Given-When-Then 패턴과 유사
- Build: 테스트 데이터를 생성한다.
- Operate: 테스트 데이터로 실행한다.
- Check: 실행한 결과를 확인한다.
'클린 코드' 카테고리의 다른 글
10장. 클래스 (0) | 2022.03.09 |
---|---|
7장. 오류 처리 (0) | 2022.03.04 |
6장. 객체와 자료 구조 (0) | 2022.03.01 |
5장. 형식 맞추기 (0) | 2022.02.28 |
4장. 주석 (0) | 2022.02.25 |
댓글