<aside> 📌 JUnit과 Hamcrest의 경우 Java의 표준 프레임워크라고 볼 수 있지만, 흐름상 Spring에서의 테스트까지 내용이 이어질 것이므로 여기에 함께 기록한다.
</aside>
기능테스트:
애플리케이션을 사용하는 입장에서 테스트. 외부 업체에서 하는 경우가 많음
통합테스트:
개발자가 entry point API부터 DB까지 테스트를 하는 것.
슬라이스 테스트:
애플리케이션을 특정 계층으로 나누어(slice) 테스트하는 것. Layered Architecture 에서 Controller, Service, Data Access로 나누는 것이 한 예시다. Mock을 사용해서 계층별로도 나눌 수 있지만 여전히 단위 테스트보다 크기가 크다.
단위테스트:
일반적으로 테스트할 수 있는 가장 작은 단위, 메서드를 기준으로 테스트하는 경우를 의미한다.