
#Testing#TDD#Mock#Stub#Jest#Unit Test
테스트는 통과했는데 배포하니 터졌다 (Mock vs Stub)
테스트 커버리지 100%를 달성하고 기분 좋게 배포했지만, 프로덕션은 에러를 뱉어냈습니다. 원인은 '가짜 객체'를 남발한 것. Mock, Stub, Spy의 차이를 정확히 모르고 사용하다가 겪은 실패담과 올바른 테스트 대역(Test Double) 사용법을 정리했습니다.
2025년 9월 15일
Codemapo

테스트 커버리지 100%를 달성하고 기분 좋게 배포했지만, 프로덕션은 에러를 뱉어냈습니다. 원인은 '가짜 객체'를 남발한 것. Mock, Stub, Spy의 차이를 정확히 모르고 사용하다가 겪은 실패담과 올바른 테스트 대역(Test Double) 사용법을 정리했습니다.
코드를 먼저 짜고 테스트하는 게 아닙니다. 테스트를 먼저 짜고, 그걸 통과하기 위해 코딩하는 것. 순서를 뒤집으면 버그가 사라집니다.

코드 푸시하면 로봇이 테스트하고(CI), 로봇이 배포합니다(CD). '내 컴퓨터에서는 잘 됐는데'라는 변명은 이제 안 통합니다. 자동화 파이프라인으로 하루 100번 배포하기.

유닛 테스트가 다 통과해도 배포하면 에러가 나는 이유는 뭘까요? 사용자가 실제로 사용하는 흐름 그대로를 검증하는 E2E(End-to-End) 테스트가 필요합니다. Cypress와 Playwright의 장단점 비교, 깨지기 쉬운(Flaky) 테스트를 방지하는 전략, 그리고 테스트 피라미드 속 E2E의 역할을 정리합니다.

복잡한 페이지 깊숙이 있는 컴포넌트를 수정할 때마다 로그인을 다시 하고 클릭을 5번 해야 하나요? Storybook으로 컴포넌트를 격리(Isolation)해서 개발하는 CDD 방법론.
