데브허브 | DEVHUB | [10분 테코톡] 돔푸의 좋은 테스트
- 좋은 테스트는 높은 커버리지, 가독성, 버그 검출, 단일 기능 검증 등 여러 요소를 포함하지만, 특히 '버그를 제대로 검출하는 테스트'에 중점을 둡니다. 🐞
- 내부 구현 세부 사항(예: 가능한 모든 합 저장 여부)을 직접 검증하는 테스트는 리팩터링 시 쉽게 깨져 '리팩터링 내성'이 낮아지는 문제를 야기합니다. 🚧
- 리팩터링 내성이 낮은 테스트는 코드 개선을 위한 리팩터링을 주저하게 만들고, 전체 테스트에 대한 신뢰도를 떨어뜨립니다. 📉
- 테스트가 구현 세부 사항에 너무 많이 결합되어 있을 때 리팩터링 내성이 부족해집니다. 🔗
- 리팩터링 내성을 높이려면 내부 구현이 아닌 외부로 노출되는 API(입출력)를 테스트해야 합니다. 🎯
- 만약 외부로 노출되지 않는 내부 로직이 너무 중요하여 꼭 테스트하고 싶다면, 이는 해당 객체가 너무 많은 책임을 가지고 있다는 신호이며, 객체 분리를 고려해야 합니다. 🧩
- 사용자 관점에서 테스트 대상을 바라보면, 어떤 부분이 API이고 어떤 부분이 내부 구현인지 명확히 구분하여 리팩터링 내성이 높은 테스트를 작성하는 데 도움이 됩니다. 🧑💻