인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박소연님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (2)

MockBean Deprecated

작성

·

110

0

@MockBean 이 Spring Boot 3.4.0 버전부터 Deprecated 되었다고 경고를 띄워주는데요

이런 경우 @MockitoBean 을 사용하면 되나요?

답변 3

1

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 박소연 님!

네, MockitoBean으로 대체해서 사용하시면 될 것 같아요. 아래 김상형 님께서 아주 상세하게 잘 안내해 주셨네요.

감사합니다 🙂

0

김상형님의 프로필 이미지

안녕하세요, 저도 해당 이슈에 대해서 궁금해서 찾아봤었는데요

  • 강의 내용 중에서 바로 대체 가능한가

     

    • @MockitoBean이 스프링 프레임워크 정식 버전에 사용되기로 결정되었으므로 @MockBean대신 사용하면 될 것 이라고 생각돼요

    • 사용 방법에 약간의 차이는 있지만, 같은 목적으로 사용되는 만큼 바로 대체 해도 된다고 생각해요

    • 다른 점은 @MockitoBean이 @Configuration클래스 에서는 사용 불가 하다고 되어있는데, 강의에서는 사용한 적이 없으니 대체해도 무방하다고 생각됩니다

    • 출처 :https://inf.run/PbYXD

  • 뭐가 바뀐 걸까

    • 스프링 부트 기능에서 스프링 기능으로 바뀌었다

      • 보시면 패키지가 바뀐 것을 알 수 있습니다

        • @MockBean

          image.png
        • @MockitoBean

           

          image.png
    • 객체 생성 방식이 바뀌었다

      • @MockBean

        • 스프링 내부 프록시 방식 의존

      • @MockitoBean

        • Mockito와의 직접적인 통합

      • 개인적으로 프록시 방식으로 생성한다는 것은 이해가 되긴 하는데 직접적으로 통합 했다는 말이 어떤 뜻인지는 모르겠네요.. 찾아봐도 잘 나오지 않았습니다

    • 결과적으로 성능적으로 더 우수한 방식이어서 @MockitoBean 사용 권장

    • 출처 : https://inf.run/JyXbZ

  • 현업에서는 어떻게 대체 될까

    • 저는 공부 단계일 뿐이라 잘 모르겠네요. 어떻게 될지 궁금하네요

    • @MockBean으로 계속 사용하다가 버전 업데이트가 필요해지면 변경하지 않을까 생각해요

       

박우빈님의 프로필 이미지
박우빈
지식공유자

상세한 답변 감사드려요! 👍

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

박소연님께서 언급하신 것처럼 만약 @MockBean이 Spring Boot 3.4.0 버전 이상에서 Deprecated 되었음을 알린다면, 대체할 수 있는 방법을 고려하셔야 합니다. 이와 관련하여 @MockitoBean이 새롭게 추가되었다면, 그 어노테이션을 사용할 수 있을 것입니다. 하지만 이는 Spring 팀의 공식 문서에서 확인해 보셔야 정확한 정보를 얻을 수 있습니다.

@MockBean을 통한 Mocking 기능은 스프링 테스트에서 통합 테스트 시 주로 사용되며, 이러한 기능이 다른 어노테이션으로 대체되어야 한다면 해당 어노테이션의 동작 방식이나 활용 방법에 대한 공식 가이드를 꼭 참고하시기 바랍니다.

현재 제공해 드릴 수 있는 기존 질문 및 답변이 있어 이를 통해 맥락을 이해하시는데 도움이 되셨으면 합니다:

기타 추가 사항은 공식 문서나 해당 버전의 릴리즈 노트를 검토해보시는 것을 추천드립니다. 이는 추가적인 변경 사항이나 대체 방안 등에 대한 가장 정확한 정보를 제공합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.