- 명령 모델의 단위 테스트
- 단위 테스트에서 리포지토리의 대역은 가짜 대역 사용
- 모의 객체를 사용하지 않음
- 인터페이스에 메서드가 적어야 가짜 구현 만들기가 쉬움
- JpaRepository 는 가짜 대역을 구현하기에 메서드가 너무 많음
- 불필요한 메서드 피하기
- 명령 모델의 리포지토리는 필요한 메서드가 매우 적음
- findById 또는 findOne, save 정도가 필수
- 이외 도메인이 제공할 기능에 따라 2-3개 정도의 메서드만 추가 필요
- JpaRepository 를 상속하면 필요하지 않은 메서드를 오용한 가능성 있음
- 조회 모델은?
- 조회 모델도 jpaRepository를 상속하지 않음
결론
JpaRepository를 상속하면 편하지만 단위테스트에서 가짜 구현 만들기 어렵고 CQRS에는 맞지 않다. 그래서 Repository를 상속하고 필요한 메서드만 추가.
참고 블로그
최범균_jpa