프로그래밍/테스트코드
테스트 코드: ① 좋은 테스트 코드
코줍
2025. 2. 12. 20:49
사이드 프로젝트에 테스트 코드를 붙이려다 문득 이 짤이 떠올라서 급하게 글을 써본다.
사실 회사에서도 테스트 코드를 쓰기 시작한 지 얼마 되지 않아 아직 익숙하지 않은 상태다.
그래서 어떤 테스트 코드가 좋은 코드인지, 테스트를 작성할 때 중요한 규칙이나 패턴이 있는지 이론적으로 먼저 알아두는 게 좋겠다는 생각이 들었다.
그런 의미에서 몇 가지 좋은 글을 읽고 정리해봤다.
좋은 코드 작성법
1. DRY보다는 DAMP하게 작성하라.
DRY : Don't Repeat Yourself
DAMP : Descriptive And Meaningful Phrases
- 중복을 줄이는 것이 아니라 더 서술적이고 의미있게 작성한다.
- 테스트끼리 서로 독립적이고 격리되어야 한다.
- DAMP 원칙을 지키면서 중복을 줄이려면, 테스트 픽스쳐 함수나 클래스 등을 이용한다.
2. 테스트는 구현이 아닌 결과를 검증하라
- 내부 구현이나 private 메소드들은 언제든지 바뀔 여지가 있는 코드 -> 은닉정보를 꺼내어 테스트 하지 말아야한다.
- 내부구현이 아닌 실행결과에 집중해야 한다.
3. 읽기 좋은 테스트를 작성하라.
- 테스트의 구조 ( 준비, 실행, 검증 ) 구절을 나누어 작성하는 것을 지향해야 한다.( AAA, GWT )
- 테스트 안에 코드량이 너무 많다면, 코드 재사용의 목적으로 모듈화를 해야 한다.( 텍스트 팩토리, 빌더, 핼퍼 메소드 )
4. 구현 설계부터 클린하게 잡는 것을 지향해라.
- 테스트가 어려운 구조는, 코드 디자인이나 설계에 문제 있을 가능성이 크다.
- 좋은 디자인으로 구현된 코드는 대부분 테스트 하기가 쉽다.
5. 테스트 명세에 비즈니스 행위를 담도록 해라.
- 비개발자도 알아볼 수 있게 비즈니스 행위를 담아서 코드를 짜야한다.
참고 자료