단위테스트를 하기 위해서 한번에 메서드 하나만을 실행하는 것인데
이러한 메서드가 다른 Network, Database 등등 제어하기 어려운 것들에 의존하고 있다면 어떻게 단위 테스트를 해야할까?
* 단위 테스트란 상대적으로 격리된 방식으로 코드의 구별된 단위를 테스트하는 것 .
Mock이란?
이러한 실제 객체를 만들어 사용하기에 시간, 비용 등의 Cost 가 높거나 혹은 객체 서로 간의 의존성이 강해
구현하기 힘들 경우 가짜 객체를 만들어 사용하는 방법
Mock 객체는 언제 필요한가?
- 테스트 작성을 위한 환경 구축이 어려운 경우
- 테스트가 특정 경우나 순간에 의존적인 경우
- 테스트 시간이 오래 걸리는 경우
- 개인 PC의 성능이나 서버의 성능 문제로 오래 걸릴 수 있는 경우 시간을 단축하기 위해 사용
Mock 객체를 남용할 경우 안좋은 점.
- Mock 위주 테스트 코드를 작성하면 given 메소드는 빠질 수가 없다.
협력 객체가 어떻게 행동해야 하는지 테스트 코드 초반에 다 명시를 해줘야 하는데, 협력 객체에 실제 구현체를 사용하면 이런 과정들이 필요 없게 된다.
'컴퓨터 프로그래밍 > Spring' 카테고리의 다른 글
[Exception] Spring boot ".properties file" Setting Error (0) | 2024.01.25 |
---|---|
[Spring기초] Spring 기술면접 준비 - 기초편 (0) | 2023.04.21 |