[워밍업 클럽 4기 백엔드] Day 16 미션

image

프레젠테이션 레이어

특징

외부로 값을 변환해 반환한다. 클라이언트의 변화에 민감하다. 예외를 처리해 유효한 값으로 반환하는 역할을 한다.

테스트 방법

  • MockMvc 등 외부로 요청을 할 수 있는 라이브러리를 사용한다!

  • given when then을 사용할 수 있는 RestAssured도 개인적으로 선호한다.

  • 반환된 값은 문자열인데, json path 쿼리를 통해 검증한다.

  • SpringbootTest를 활용한다.

비즈니스 레이어

특징

도메인 로직이 할당되는 레이어다. 각 엔티티들의 상호작용으로 값을 반환한다.

테스트 방법

  • SpringbootTest를 사용한다

  • 테스트할 클래스를 주입받는다.

  • 레포지터리를 주입받아 given절에서 데이터를 insert한다.

  • when절에서 해당 클래스의 테스트하고싶은 메소드를 호출한다.

  • then절에서 결과값을 Assertj등을 활용해 검증한다.

 

퍼시스턴스 레이어

특징

데이터를 저장소에 저장하고 쿼리하는 역할을 담당한다.
RDB기반으로 동작하는 JPA뿐만 아니라 다른 저장소와도 연계될 수 있다.

 

테스트 방법

  • DataJpaTest는 JPA 관련 빈만 초기화하므로 SpringbootTest를 사용한다.

  • 각 쿼리 메소드들이 정상적으로 원하는 결과를 반환하는지 확인하는 목적으로 작성한다.

  • given절에서 검증에 필요한 데이터를 insert하고 when절에서 해당 쿼리를 발생시키는 메소드를 호출한다.

  • 반환값을 then절에서 테스트 프레임워크를 통해 검증한다

 

댓글을 작성해보세요.

채널톡 아이콘