🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

인프런 워밍업 클럽 4기 BE 스터디 Day 16 미션

인프런 워밍업 클럽 4기 BE 스터디 Day 16 미션

Practical Testing: 실용적인 테스트 가이드

 

🎯 Day 16 미션

레이어별로 어떤 특징이 있고, 어떻게 테스트하면 좋을지 자기만의 언어로 정리하기


1⃣ Persistence Layer

특징

  • Repository

  • 데이터의 CRUD를 담당

     

🧪 테스트

  • @DataJpaTest 보다는 @SpringBootTest 권장

  • @ActiveProfiles를 사용해 애플리케이션 환경과 테스트 환경 분리

     

  • @Autowired 를 사용해 Repository 주입하기

  • given : 생성자를 통해 객체 생성 후 저장하기

  • when : 조회하기

  • then : Size 체크, 필드 검증

 

2⃣ Business Layer

특징

  • Service

  • Persistence Layer와 상호작용하여 비즈니스 로직을 구현

  • 트랜잭션 관리

     

🧪 테스트

  • @Autowired 를 사용해 Repository 주입하기

  • @Autowired 를 사용해 Service 주입하기

  • @Transactional 사용

  • given에서 필요한 정보와 필요하지 않은 정보를 구분하기 위해 도우미 메서드 만들기

    • 예를 들어, 객체 생성 분리

  • when : 테스트할 Service 메서드 호출

  • then : ResponseDTO 검증

 

3⃣ Presentation Layer

특징

  • Controller

  • 요청 수신 및 응답 반환

  • 요청에 대한 최소한의 검증을 수행

🧪 테스트

  • @WebMvcTest 에 테스트할 컨트롤러 명시하기

  • @Autowired 를 사용해 MockMvc 주입하기

  • @MockBean 을 사용해 Service를 가짜로 주입하기

  • @EnableJpaAuditing 분리하기

  • given : RequestDTO 만들기

  • when 및 then : 테스트할 엔드포인트, Method, Content-type을 지정해 응답 검증

@EnableJpaAuditing
@Configuration
public class JpaAuditingConfig {
}

댓글을 작성해보세요.

채널톡 아이콘