Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- html #css #부트스트랩 #웹사이트 #개발 #초보 #til #내일배움캠프 #스파르타코딩클럽
- java #문법
- sql #부트캠프 #내일배움캠프 #웹관리자 #도전 #학습
- java
- sql #내일배움캠프 #스파르타코딩클럽
Archives
- Today
- Total
Hyeok의 웹 개발 블로그
<2025.05.08> TestCode - 단위 테스트 본문
✅단위 테스트
- 작은 코드 조각을 검증
- 빠르게 수행
- 격리된 방식으로 처리하는 자동화된 테스트
👍좋은 테스트
- 도메인 모델 및 알고리즘 ( Entity, Utill 클래스)
- 노력 대비 단위 테스트의 가치가 매우 높다.
- 해당 코드가 복잡하거나 중요한 로직을 수행해서 테스트의 회귀 방지 향상
- 외부 의존성이 없어서 테스트 유지비를 낮추기 때문에 저렴
👎 나쁜 테스트
- 간단한 코드 (간단한 DTO, Utill) , @Getter, @Setter, @Builder 등등
- 이러한 테스트는 가치가 없어서 할 필요 X - 컨트롤러 - 엔드투 엔트 테스트가 적합- 단위 테스트를 적용 X

더보기
좋은 단위 테스트의 4가지 특성
1. 회귀 방지 -> 기능 오류를 방지
2. 리팩토링 내성 -> 리팩토링을 해도 테스트가 깨지지 않음
3. 빠른 피드백 -> 빠른 테스트 속도
4. 유지 보수성 -> 가독성과 재사용성이 좋고 실행되기 쉽게 작성되어야함.
✅ 빠른 피드백
- 의존성이 없는 코드에 대한 테스트 작성 (POJO 테스트)
- Entity, Utill 클래스 - 의존성을 mock 처리하여 핵심 비즈니스 로직에 대한 테스트 코드만을 작성
- 복잡한 비즈니스 로직이 포함된 Service 클래스
✅ Mock
- Mock은 테스트 할 때, 필요한 실제 객체와 동일한 모의 객체를 만들어 테스트의 효율성을 높이기 위해 사용하는 '가짜 객체'
- 사용 하는 경우
- 실제 객체를 만들기엔 시간과 비용이 많이 드는 경우
- 의존성이 길게 걸쳐져있어서 테스트를 제대로 구현하기 어려운 경우
- 테스트 작성을 위한 환경 구축이 어려운 경우
- 종류 및 사용 방법
- @Mock : 특정 클래스 위에 선언하면, 해당 클래스를 가짜 객체로 만듬
- @InjectMocks : @Mock 으로 생성된 mock 객체를 자동으로 DI 해주는 어노테이션
@ExtendWith(MockitoExtension.class) // Mock Application Context Load
public class OrderServiceTest {
@Mock
private OrderRepository orderRepository;
@Mock
private ProductRepository productRepository;
@Mock
private OrderLineRepository orderLineRepository;
@InjectMocks
private OrderService orderService;
@Test
void test() {
...
}
}
'TIL > Spring' 카테고리의 다른 글
| <2025.06.04> 임베딩 (0) | 2025.06.04 |
|---|---|
| <2025.05.19> 페이지네이션, 무한스크롤 (0) | 2025.05.19 |
| <2025.05.07> 연관관계 N+1 (0) | 2025.05.07 |
| <2025.05.01> 영속성 컨텍스트 (2) | 2025.05.01 |
| <2025.04.22> 배달 기능 프로젝트 피드백 (1) | 2025.04.22 |