단위 테스트란 소스 코드의 특정 모듈(함수, 클래스 등)이 의도된 대로 동작하는지를 검증하는 테스트를 말한다.
JUnit과 같은 도구를 활용해 프로덕션 코드를 작은 단위로 나눠 테스트할 수 있다.
단위 테스트의 목적은 프로그램을 작은 단위로 나누고 고립시켜 각각의 부분이 잘 동작하는지 확인하는 것이다. 단위 테스트를 자주 진행하면 코드 수정으로 인한 문제 발생 시 어느 부분이 잘못되었는지를 빠르게 캐치할 수 있다.
내가 이렇듯 주석을 무시하는 이유가 무엇이냐고? 거짓말을 하니까. 항상도 아니고 고의도 아니지만 너무 자주 거짓말을 하니까. 주석은 오래될수록 코드에서 멀어진다. 오래될수록 완전히 그릇될 가능성도 커진다. 이유는 단순하다. 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능하니까.
- 로버트 C. 마틴 (Robert Cecil Martin), 클린 코드
주석은 프로그래밍 코드에 남긴 메모이다. 이를 통해 프로덕션 코드가 어떤 일을 하는지를 알려줄 수 있다. 문제는 그것에 대한 검증이 없다는 것이다. 반대로 단위 테스트는 코드가 어떤 일을 하는지를 검증한다.
또한 프로덕션 코드의 변경은 테스트 코드의 변경을 야기하기에 최신화된 테스트 코드를 제공할 수 있다. 하지만 프로덕션 코드가 변경되었음에도 주석이 변하지 않는 경우는 흔하다. 단위 테스트로 주석을 대체하면 계속해서 업데이트되는 문서를 제공할 수 있다.
FIRST 규칙은 로버트 마틴이 제안한 규칙으로, 효율적이고 깔끔한 단위 테스트를 작성하기 위한 원칙이다.
예고르 부가옌코 (Yegor Bugayenko), 엘레강트 오브젝트
로버트 C. 마틴 (Robert Cecil Martin), 클린 코드