
인프런 워밍업 클럽 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 {
}
댓글을 작성해보세요.