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

스프링 핵심 원리 - 기본편

옵션 처리

IllegalStateException

작성

·

263

·

수정됨

0

CoreApplicationTests를 run 했을 때 아래와 같은 에러가 발생합니다. 라이브 코딩으로 똑같이 따라했는데 왜 그러는걸까요? ㅠㅠ 구글 드라이브 링크 첨부합니다... 도와주세요 ㅠ

 

java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@298d9a05 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4ef37659, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@306cf3ea, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@52102734, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@4d910fd6, org.springframework.boot.test.context.SpringBootTestAnnotation@e50e93c5], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]

 

구글 드라이브 링크 : https://drive.google.com/drive/folders/1KhcvynthGyhTtm1G1hGlFdkD7R1eHDBN?usp=sharing

답변 2

0

동일한 증상이 발생했는데 그냥 SpringBootTest어노테이션에 (classes = AutoAppConfig.class)달아서 해결했습니다....
자주묻는질문에 답이 따로 있었네요 인텔리제이가 아니라 그래들로 빌드하면 해결됩니다...

0

안녕하세요. 김지원님, 공식 서포터즈 David입니다.

MemberServiceImpl에서 MemberRepository를 주입받아야 하는데, MemberRepository 주입 대상이 2개가 존재하여 발생한 문제입니다.

MemoryMemberRepository 클래스의 @Component를 제거하시거나 AutoAppConfig 클래스에서 MemberRepository를 생성하는 메서드를 제거하거나 @Primary 키워드를 사용해주세요.

ReteDiscountPolicy, DiscountPolicy를 사용하는 곳도 동일하게 변경해 주세요.

감사합니다.