src/test/java
├── com.example.project
│ ├── support <-- Fixture 생성기, 추상 통합 테스트 클래스 등
│ │ ├── fixture
│ │ └── config (Testcontainers 등)
│ ├── unit # 단위 테스트
│ │ ├── service
│ │ ├── controller
│ │ └── repository
│ ├── integration # 통합 테스트
│ │ ├── service
│ │ ├── controller
│ │ └── repository
2번
@DisplayName 를 사용해서 어떤 테스트인지 설명 작성한다.@Transactional로 메서드 단위 롤백 전략을 적용한다.도구: Junit5, Mockito
비즈니스 로직(서비스 계층)만 작성한다.
Mock 객체 사용해서 빈 주입 없이 빠르게 진행한다.
하나의 메서드 개발 후 테스트를 진행한다.
: 유저 로그인 메서드 개발 → 유저 로그인 메서드에 관한 테스트 진행
@WebMvcTest 를 사용하고, 필요한 서비스만 @MockBean 으로 주입한다.@DataJpaTest로 쿼리가 의도대로 동작하는지 확인한다.