테스트 코드 작성 중 @MockBean과 @Autowired가 뭐가 다른지 궁금해짐
AutoWired로 의존 주입 후 테스트 하는 경우 실제 구현된 내용이 사용됨.
예를 들면 이메일 서비스를 테스트하는 경우 이메일이 실제로 보내짐.
그러나 mockBean은 껍데기만 가지고 오기 때문에 이메일이 보내지지 않으며,
사용자가 이메일을 보내는 것과 같은 기대값을 넣어 테스트 할 수 있다.
코딩중 Mockbean사용시에는 오류가 나지 않으나 Autiwired를 사용하면 오류가 발생하는 이슈
테스트 코드 중 EmailService 부분에서 Bean을 찾을 수 없다는 오류가 발생됨.
어떤원인으로 발생된 오류인지는 모르겠으나 생각으론 SpringBootTest에 의해 띄워진 Bean 에게서 정상적으로 빈등록이 되지 않는 오류가 발생하였고, 그것을 MockBean으로 대체하니 내부 로직이 작동하지 않아 오류가 발생하지 않는것으로 판단.