테스트를 먼저 쓰는 이유
날짜발행일
문제/맥락
테스트를 먼저 쓰는 방식은 코드를 검증하기 위한 목적만으로 보면 다소 번거로워 보일 수 있다. 하지만 실제로는 테스트를 작성하는 과정에서 "지금 만들려는 게 정확히 무엇인지"를 한 번 더 정리하게 된다.
어떤 입력이 들어오고, 어떤 결과를 기대하는지. 구현보다 의도가 먼저다.
핵심 포인트
의도를 먼저 정한다
코드를 먼저 쓰면 손이 가는 대로 구현하게 된다. 테스트를 먼저 쓰면 "무엇을 만들지"를 문장으로 정하고 시작하므로 방향이 흔들리지 않는다.
작은 예제로 시작한다
가장 단순한 입력과 기대 출력부터 적는다. 예제가 통과하면 다음 예제로 범위를 넓힌다. 큰 설계를 먼저 하지 않아도 된다.
1// 먼저: 기대를 적는다2it('할인 쿠폰이 있으면 총액에서 할인액을 뺀다', () => {3 expect(totalWithCoupon(10000, 1000)).toBe(9000)4})56// 다음: 통과시킨다7function totalWithCoupon(total: number, discount: number) {8 return total - discount9}
테스트가 존재 이유를 설명한다
이렇게 작성된 테스트는 나중에 코드를 다시 볼 때도 이 코드가 왜 존재하는지 설명해 주는 역할을 한다. 주석보다 정확하고, 문서보다 최신이다.
정리
테스트를 먼저 쓰는 이유는 검증을 빨리 하려는 게 아니라, 생각을 먼저 정리하려는 것이다. 무엇을 만들지 정하고, 작은 예제로 확인하고, 그 기록을 남긴다. 이 순서가 개발을 안정적으로 만든다.
댓글
최근 작성글
모두보기이미지 없음
quote는 중요하다
따옴표 처리가 보안과 직결되는 이유. SQL·쉘·JSON·로그에서 경계를 지키는 언어별 실천을 정리한다.
이미지 없음