inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Practical Testing: Hướng dẫn kiểm thử thực tế

Kiểm thử Lớp Trình bày (2)

MockBean Deprecated

Đã giải quyết

487

soyeon207

1 câu hỏi đã được viết

1

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

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

spring tdd jpa mockito 소프트웨어-테스트 junit5

Câu trả lời 3

8

ssshhh

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

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

     

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

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

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

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

  • 뭐가 바뀐 걸까

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

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

        • @MockBean

          image.png
        • @MockitoBean

           

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

      • @MockBean

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

      • @MockitoBean

        • Mockito와의 직접적인 통합

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

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

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

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

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

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

       

1

wbluke

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

1

wbluke

안녕하세요, 박소연 님!

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

감사합니다 🙂

0

communityai8509

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

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

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

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

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

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

private 상수 테스트 관련 질문

0

83

1

void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??

0

125

2

커버리지는 어떻게 활용하시는지 궁금합니다.

0

159

2

테스트 문서화 질문입니다

0

104

2

단위테스트 질문이 있습니다

0

96

2

컨트롤러는 모킹을 한 이유가 궁금합니다.

0

100

2

ERD 가장자리에 있는 도메인 테스트 질문

0

87

2

DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?

0

134

2

OrderCreateRequest DTO에 대해서 궁금한점

0

101

2

고전파의 테스트 대역 사용 대상, 공유 의존성

0

154

2

계층 관련 질문이 있습니다.

0

138

3

'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다

1

123

2

혹시 update 로직은 어떻게 테스트하나요? (@Setter?)

0

134

2

단위테스트와 통합테스트의 경계가 궁금합니다.

0

228

2

Service+Repository 통합테스트 관련 질문입니다.

0

150

2

OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요

0

183

2

test 용 .yml

0

90

2

throws Exception

0

78

2

카페키오스크 클래스 문의 ,,

0

87

2

Rest docs 문서용 테스트코드를 따로 작성해야 되나요?

0

172

2

테스트 코드에서 필요한 생성자

0

138

1

tearDown 순서

0

115

2

@Builder 생성자 private

0

136

2

@DisplayName gradle / intellJ

0

93

2