준준의 기록일지

가짜객체 - Mokito 본문

스프링

가짜객체 - Mokito

junjunwon 2020. 7. 30. 14:50

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."




컨트롤러테스트를 만들면서 우리가 테스트하고자하는 것 외에 여러개의 객체가 동시에 주입되는 것을 알 수 있었다

이럴 경우 우리가 테스트하고자 하는 대상 외에 것들에 대한 의존성이 너무 커서 테스트에 집중하기 어렵다.

하나의 테스트를 통과하기 위해 의존성이 주입된 것을 모두 만들어줘야 하는 번거로움과 느린 현상이 있었다.

 

이러한 문제를 해결하기 위해 나온 것이 가짜객체. (남과 똑같은 행동을 하는)

 

 

Spring은 Mockito (mock object Framework) 을 사용하고 있어서 별도의 설정 없이 쉽게 가짜객체를 만들 수 있다.

 

Spring Test 

스프링이 의존성을 관리하는 경우 -> 느림

객체를 단순히 생성 -> 빠름

 

스프링 프로젝트는 POJO (Plain Old Java Object) 방식을 지향 

 

 

위와 같이 의존성 주입된 것을 가짜 객체로 변경해보자.

 

위에서는 @SpyBean(~~~.class)에 있는 Class에 직접적으로 의존성을 주입한다고 볼 수 있다. 이를 가짜객체로 만들어보자.

 

@MockBean으로 변경!

이떄 가짜 RestaurantService는 레파지토리를 사용하지 않기 때문에 아래 레파지토리는 지워도 가능하다.

 

이렇게 하면 실행은 되지만, 이제 가짜 서비스가 올바른 것 같은 결과를 돌려주도록 하면 된다.

 

'스프링' 카테고리의 다른 글

[Spring] RestTemplate  (0) 2020.08.18
[Spring] ResponseEntity  (0) 2020.08.18
[스프링 펌] @SuppressWarnings("")  (0) 2020.08.07
프로젝트 시작시 참고사항  (0) 2020.07.29
REST API  (0) 2020.07.29