컨트롤러 라우팅인지 서비스 규칙인지 먼저 분리한다.
repository, client, queue는 실제 호출 없이 결과만 약속한다.
정상 값뿐 아니라 없는 데이터와 예외 흐름도 같은 무게로 본다.
테스트 대상과 필요한 provider만 등록한다.
각 케이스에서 resolve, null, reject를 명시한다.
반환값, 예외 타입, 응답 모양을 확인한다.
의존성이 기대 인자와 횟수로 호출됐는지 본다.
가장 많이, 가장 빠르게 돌린다.
실제 provider 연결과 테스트 DB를 확인한다.
요청부터 응답까지 앱 흐름을 본다.
mock 기록과 공유 상태가 다음 케이스로 새지 않게 한다.