| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- autowired
- Bean
- Component
- 스프링
- spring
- 스프링 부트
- 오토와이어드
- zepettoworld.com
- DispatcherServlet
- 1
- git #gitlab #github
- layout #thymeleaf #화면분할
- Today
- Total
기록과 정리
Mock 객체 사용하기 본문
이 글은 백기선님의 '더 자바, 애플리케이션을 테스트하는 다양한 방법' 강의를 참고하였습니다.
https://www.inflearn.com/course/the-java-application-test
더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의
자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발
www.inflearn.com
상황

MemberService는 회원에 관련된 서비스 로직이 존재한다. 가령 회원을 id값을 조회한다던지

JpaRepository라는 인터페이스 상속받은 StudyRepository 인터페이스 역시 StudyService에 주입을 해주었다.


이런 경우 , 인터페이스만 존재하고 구현체만 존재하지 않아 테스트하기 힘든 경우, Mock 객체를 만드는 일련의 과정 (mocking)을 통해 가상의 객체를 만들어주어 테스트를 해주도록 하자. 해당 하는 경우가 Mock을 사용하여 테스트하기 아주 적절한 상황(?)이라고 볼 수 있다.
Mock 객체 만들기
StudyService에 대한 Test를 하나 만들어보자. 우리는 아직 구현체가 존재하지 않기 때문에 Test에서 memberService, studyRepository를 의존 주입을 받아도 구현체를 작성해야한다. 이런 경우 우리는 Mocking을 통해 주입을 받을 수 있는데 크게 2가지 방법이 있다.

1. mockito mock static 메서드

2. @Mock

Mockito Extention을 jUnit에서 사용하기 위해 @Extendwith 애노테이션을 사용해준 후, @Mock 애노테이션을 사용할 수 있다. 또한 글로벌하지 않게 사용하고 싶다면

다음과 같이 파라미터 형식으로 Mock 객체를 받아서 사용할 수 있다.
'IT > Test (JUnit)' 카테고리의 다른 글
| Mockito BDD 스타일 API (0) | 2021.11.08 |
|---|---|
| Mock 객체 Stubbing (0) | 2021.10.25 |
| Mockito 소개&준비 (0) | 2021.10.21 |
| JUnit 5 Assertion (0) | 2021.09.14 |
| JUnit5 소개 & 시작하기 (0) | 2021.09.13 |