Community

@MockBean 사용 시 재초기화 문제

Application Context를 띄워서 진행하는 통합 테스트의 경우 Context 내에 의도적으로 빈을 "교체"해서 특정 객체의 동작을 mocking 해야할 수도 있습니다. 예를 들어서 외부 통신이 필요한 객체의 동작을 mocking하면 테스트가 편리해지겠죠. 문제는 @MockBean이 사용된 Application Context는 재초기화 된다는 문제가 있습니다. 즉 5개의 통합 테스트가 모두 @MockBean을 이용한다면 Application Context가 5번 초기화됩니다. 따라서 @MockBean을 이용한 테스트가 많아질수록 전체 테스트는 당연히 오래걸리고 부담스러워집니다. 그럼 TestConfiguration을 이용해서 Context에 Mock 객체 자체를 실제 빈으로 등록하는 방법도 나쁘지 않을 것 같습니다. 그런데 멀티 모듈일 경우 다른 모듈에서 테스트 시 해당 TestConfiguration을 이용하지 못한다는 단점이 있습니다. 이를 해결한 방법이 궁금하다면 다음 포스트를 참고해 보세요.

알림

알림이 없습니다