Book
Clean Code (클린코드) | 9. 단위 테스트 151-160
앤오엔
2023. 8. 18. 07:35
요약
8. 경계
깨끗한 경계 및 결론
경계에 위치하는 코드는 깔끔히 분리한다.
기대치를 정의하는 테스트 케이스를 작성한다.
외부 패키지를 세세하게 알지 못하게 내부 코드에 의존하도록 만든다.
외부 패키지를 호출할 때, 새로운 클래스로 감싸거나 ADAPTER 패턴을 사용해 패키지가 제공하는 인터페이스로 변환한다.
9. 단위 테스트
TDD 법칙
1. 실패하는 단위 테스트를 작성할 때까지 살제 코드를 작성하지 않는다.
2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
깨끗한 테스트 코드 유지하기
테스트코드가 지저분할 수록 변경이 어려워진다.
테스트코드가 복잡하면 실제 코드 짜는 시간보다 테스트를 추가하거나 변경하는데 시간이 더 걸린다.
단위테스트는 코드에 유연성, 유지보수성, 재사용성을 제공한다.
깨끗한 테스트코드 만들기
테스트 코드 가독성을 높이려면 명료성, 단순성, 풍부한 표현력이 필요하다. 즉, 최소의 표현으로 많은 것을 나타내야 한다.
예. BUILD-OPERATE-CHECK패턴을 사용해 테스트 자료를 만들고 테스트 자료를 조작하며 조작한 결과가 올바른지 확인하는 부분으로 나누어 작성한다.
발췌
테스트 코드는 실제 코드 못지 않게 중요하다.
TDD 원칙에 맞추서 테스트 코드 설계를 제대로 하는 것이 매우 중요하다.
메모
TDD에 대해 깊게 공부한 적이 없지만, 중요성은 많이 들어 알고 있다. 실제 엄격하게 TDD에 입각해서 코드를 짜고 있지 않아 현실에서 책 내용을 어떻게 적용할지 고민이 되긴 한다. 여튼 가독성 있는 테스트코드를 짜야 한다는 취지는 공감한다.