개발/TEST관련

테스트에서의 서비스 추상화

ahoy~ 2020. 10. 5. 15:28

JavaMailServiceImpl을 사용하는 UserService가 있다고 생각해보자.

테스트를 진행하려는데 JavaMailServiceImpl을 사용하되 실제 메일은 보내지지 않았으면 좋겠다.

이런 경우에는 JavaMailServiceImpl을 위한 Interface인 MailSender를 둔 후, MailSender만 사용한다.

UserService에서는 DI를 통해 운영 시에는 JavaMailServiceImpl을, 테스트 시에는 DummyMailService를 사용하게 만든다면 의도한 대로이다.

 

추상화와 DI를 잘 활용하는 것이 Spring이라는 Framework를 잘 사용하는 것인 것 같다.