• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

강의에서 21:36 쯤에

24.02.18 16:08 작성 조회수 185

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
영한쌤께서 fieldInjectionTest 테스트 코드를 만드실 때, new OrderServiceImpl() 로 OrderServiceimpl 객체를 생성하잖아요? 여기서 해당 객체는 스프링 빈으로 등록된 OrderServiceImpl이 아닌 그냥 완전히 새로 생성된 자바 객체인 OrderServiceImpl 인거죠??

답변 1

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2024.02.18

안녕하세요. 김수환님, 공식 서포터즈 OMG입니다.

네, 이해하신게 맞습니다.

스프링을 통해 주입받지 않고, 테스트 코드 내에서 직접 new로 생성하였기 때문에 OrderServiceImpl의 구성요소들(MemberRepository와 DiscountPolicy)을 스프링이 부품조립을 해줘야 하는데, 직접 생성하였기 때문에 부품의 조립이 되지 않아(=주입받지 못하여) NullPointerException이 발생하였습니다.

image

감사합니다.

김수환님의 프로필

김수환

질문자

2024.02.18

이해하기 쉬운 설명 진심으로 감사드립니다 :-)