개발/TEST관련
테스트에서의 서비스 추상화
ahoy~
2020. 10. 5. 15:28
JavaMailServiceImpl을 사용하는 UserService가 있다고 생각해보자.
테스트를 진행하려는데 JavaMailServiceImpl을 사용하되 실제 메일은 보내지지 않았으면 좋겠다.
이런 경우에는 JavaMailServiceImpl을 위한 Interface인 MailSender를 둔 후, MailSender만 사용한다.
UserService에서는 DI를 통해 운영 시에는 JavaMailServiceImpl을, 테스트 시에는 DummyMailService를 사용하게 만든다면 의도한 대로이다.
추상화와 DI를 잘 활용하는 것이 Spring이라는 Framework를 잘 사용하는 것인 것 같다.