테스트가 주도하는 개발이란 비즈니스 코드에 앞서 테스트를 작성하고 그에 맞추어 전체 개발을 이끌어 나가는 것을 의미한다.
장점
단점
Repository -> Service -> Controller 순으로 개발 추천
Repository는 구현할 메서드가 없는 통합 테스트에 가깝다.
Repository 테스트 시
JPA 레퍼지토리를 테스트하기 위해서 @DataJpaTest 어노테이션 추가하기
Service 테스트 시
Mock(테스트를 위한 가짜 객체)를 만들어주는 프레임워크 Mokito, JUnit(자바용 유닛 테스트 프레임워크)를 사용하여 테스트하기
Controller 테스트 시
HTTP응답 요청을 주로 테스트해야하기 때문에 MockMvc객체를 사용하여 HTTP 요청하기