• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

Junit Test DI 방식 질문드립니다.

22.12.22 17:43 작성 조회수 692

2

강의에서 보시면 영한님께서 OrderService와 OrderRepository를 주입 받을 때 @Autowired를 사용하시는데요.

이걸 @RequiredArgsConstructor를 사용하여 생성자 주입응로 하면 에러가 터지더라구요. org.junit.jupiter.api.extension.ParameterResolutionException

Test 환경에서는 @Autowired로 주입을 받아야 하는것인가요?

답변 1

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2022.12.22

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

테스트에서는 롬복을 사용하려면 별도의 build.gradle에 추가 작업을 해줘야합니다.

아래 링크를 참고해주세요

https://otrodevym.tistory.com/entry/Lombok-gradlespring%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95
.
감사합니다.

추가가 되어있는데도 오류가 났었네요 ㅠ

OMG님의 프로필

OMG

2022.12.22

자료들을 찾아보니 junit4~5(이전버전=비교적 초반 5버전)에서는 테스트에서 생성자 주입이 되지 않았다고 하네요.

junit5(비교적 최신)에서 @TestConstuctor가 도입되어 가능하게 변경되었다고 하는데 이 부분은 직접 확인해보시면 좋을 것 같아요. 확인 후 결과를 공유해주시면 다른 수강생 분들에게도 많은 도움이 될 것 같습니다.

https://sunghs.tistory.com/138

보내주신 링크 참고하여 @TestConstructor(autowireMode = TestConstructor.AutowireMode.ALL) 어노테이션을 추가하고 @RequiredArgsConstructor 와 private final 방식으로 생성자 주입을 했더니 정상적으로 테스트가 실행되었습니다!

감사합니다!