[워밍업 클럽 4기 백엔드] Day 16 미션
3개월 전
Layered Architecture 구조의 레이어별 테스트 작성법을 알아보았습니다. 레이어별로 1) 어떤 특징이 있고, 2) 어떻게 테스트를 하면 좋을지, 자기만의 언어로 다시 한번 정리해 볼까요?
1. persistence layer 테스트
(Repository layer)
특징
data access 역할
데이터베이스와 직접적으로 통신하는 레이어
비즈니스 로직은 포함되어서는 안된다 오직 데이터에 대한 CRUD에만 집중한 레이어
테스트 방법
단위테스트 : 잘하지 않음
통합테스트 : @DataJpaTest 등으로 테스트
쿼리 동작 및 복합 조건 검색등을 테스트
2. business layer 테스트
(Business logic layer)
특징
비즈니스 로직을 구현하는 역할
트랜잭션을 관리해야 한다
이 레이어는 순수한 자바 로직이 많고 변경에 유연해야 한다
테스트 방법
단위 테스트 : Repository 등을 mock 처리하고 service 만 테스트
통합테스트 : 실제 DB 를 연결하거나 인메모리 DB를 연결
트랜잭션 흐름 및 로직 분기처리 등을 확인
3. presentation layer 테스트
(Web layer)
특징
외부 세계의 요청을 가장 먼저 받는 계층
외부 요청을 받아 적절한 서비스 계층에 위임하고 결과를 가공해서 반환함
테스트 방법
단위 테스트 : Mocking 된 service 를 주입해서 controller 만 테스트 (@WebMvcTest)
통합 테스트 : 실제 서버 없이 전체 흐름을 테스트 (@SpringBootTest)
입력 유효성 검사 및 응답 포맷 검증등을 확인
댓글을 작성해보세요.