좋은 단위 테스트(unit test)의 원칙

단위 테스트 기초

좋은 단위 테스트란?

훼손의 정확한 감지

  1. 코드에 대한 초기 신뢰를 준다.
  2. 미래의 훼손을 막아준다.

세부 구현사항에 독립적

개발자가 코드베이스에 가할 수 있는 변경은

이 두가지이다.
이 중에서 리패토링을 했을 때, 테스트코드에 변경사항이 생겨서는 안된다.
테스트가 세부구현사항에 독립적일 수록 리팩터링에 대한 확신을 갖기 쉽다. 테스트가 여전히 잘 통과된다면 리팩터링이 잘 된 것이고, 테스트가 실패한다면 코드의 동작을 변경한 실수를 범한 것이다.

잘 설명되는 실패

이해 가능한 테스트 코드

쉽고 빠른 실행

퍼블릭 API 에 집중하되, 중요한 동작은 무시하지 말라

퍼블릭 API 바깥에 있는 중요한 동작들(의존성)은 어떻게 해결해야할까?

테스트 더블을 사용해야 하는 이유