이 글은 이동욱 님의
스프링 부트와 AWS로 혼자 구현하는 웹 서비스
책을 읽으며 정리한 글입니다.
1. TDD와 단위 테스트
TDD
테스트가 주도하는 개발
red : 항상 실패하는 테스트를 먼저 작성
green : 테스트가 통과하는 프로덕션 코드를 작성
Refactor : 테스트가 통과하느면 프로덕션 코드를 리팩토링
단위 테스트
TDD의 첫 단계인 기능 단위의 테스트 코드를 작성하는 것
TDD처럼 꼭 테스트 코드를 먼저 작성해야 하는 것은 아님
리팩토링도 포함되지 않음
단순히 테스트 코드만 작성하는 것
테스트 코드 작성 이유
개발 단계 초기에 문제 발견
리팩토링, 라이브러리 업그레이드 등에서 기존 기능 올바르게 작동하는지 확인 할 수 있음
기능 불확실성 감소
시스템에 대한 실제 문서 제공(단위 테스트 자체가 문서로 사용 가능)
톰갯을 계속 내리고 실행하지 않아도 됨
자동 검증 가능
안전하게 기능을 보호
테스트 코드 프레임워크
JUnit - java
DBUnit -DB
CppUnit - C++
NUnit -.net