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

용정님의 프로필 이미지

작성한 질문수

[스프링 배치 입문] 예제로 배우는 핵심 Spring Batch

좋은 코드의 기본 테스트 코드 작성하기

테스트 코드 실행 시 에러

작성

·

431

·

수정됨

0

안녕하세요.

success_noData() 테스트 코드를 테스트 하는 중에 에러가 발생하여 질문 남겨봅니다!

 

 

에러는 다음과 같습니다!

 

Description:

Parameter 0 of constructor in com.example.SpringBatchTutorial.job.dbDataReadWrite.TrMigrationConfig required a bean of type 'com.example.SpringBatchTutorial.core.domain.orders.OrdersRepository' that could not be found.

Action:

Consider defining a bean of type 'com.example.SpringBatchTutorial.core.domain.orders.OrdersRepository' in your configuration.

 

이와 같은 에러가 발생하는데 해결 방법을 부탁드립니다!

답변 2

0

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

문제를 해결을 하셨지만, 답변 리스트에 미답변으로 남아 있어 답글을 하나 등록 하도록 하겠습니다.

용정님의 프로필 이미지
용정
질문자

앗 죄송합니다...

제가 질문을 처음 남기는 거여서 이제야 확인 후 변경했네요 😭

0

용정님의 프로필 이미지
용정
질문자

코드를 천천히 읽어보면서 해결은 했습니다.

SpringBatchTestConfig.class 파일의 위치가 com.example.SpringBatchTutorial.job 에 있어서 오류가 생긴 거더라구요.

com.example.SpringBatchTutorial.job 으로 옮기니 해결되었는데, 해당 파일의 위치가 중요한가요??

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

용정님 안녕하세요.
문제는 해결을 하셨군요 :)
상황과 말씀을 들어 보니 스프링 프레임워크 내용과 관련한 이슈로 생각이 돼요.
결론부터 말씀을 드리면 파일경로도 중요해요 :) 해당 패키지 위치부터 스프링 프레임워크가 스캔을 해서 빈을 등록을 하기 때문이에요.
(패키지 경로는 자바 파일 최상단에서 확인할 수 있습니다.)

오류가 발생한 경우 com.example.SpringBatchTutorial.job 위치에 있을 때는 com.example.SpringBatchTutorial.job 패키지 위치부터 스프링에서 빈을 등록을 하게 됩니다.
com.example.SpringBatchTutorial.job 패키지 하위에는 OrdersRepository 를 찾을 수 없어서 의존성 주입이 안되어 에러가 발생을 하였는데요.
com.example.SpringBatchTutorial 패키지 위치에 있을 때는 해당 위치부터 스캔을 시작하여 하위에 있는 OrdersRepository 를 찾을 수 있겠습니다.

감사합니다 ^^

용정님의 프로필 이미지
용정
질문자

이해했습니다!

답변 감사합니다!!

죄송하지만 추가 질문이 있습니다..

테스트 코드를 실행하지만 실제 com.example.SpringBatchTutorial 패키지 하위의 bean 들을 스캔해서 등록하여 테스트 코드를 실행한다고 이해하면 될까요??

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

네!! 말씀해주신 내용이 맞습니다 :)
@SpringBootTest 어노테이션에 의해서 등록이 되고 테스트 코드가 실행이 되겠습니다 😀😀

용정님의 프로필 이미지

작성한 질문수

질문하기