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

ckstj8027님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

주문과 할인 도메인 실행과 테스트

CoreAppicationTests 에러

작성

·

153

0

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

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

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

[질문 내용]
여기에 질문 내용을 남겨주세요.

4:50 에서

java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)

at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:85)

at jdk.proxy2/jdk.proxy2.$Proxy46.getHandler(Unknown Source)

at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158)

at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147)

at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32)

at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60)

at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320)

at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

Suppressed: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)

at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:85)

at jdk.proxy2/jdk.proxy2.$Proxy46.getHandler(Unknown Source)

at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158)

at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147)

at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32)

at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:67)

at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:487)

at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:278)

... 2 more

Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker

at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105)

at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79)

at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75)

at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:49)

at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:29)

at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:26)

at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:71)

at org.mockito.Mockito.<clinit>(Mockito.java:1683)

at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73)

at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60)

at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320)

at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240)

... 2 more

Caused by: java.lang.reflect.InvocationTargetException

at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)

at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103)

... 15 more

Caused by: org.mockito.exceptions.base.MockitoInitializationException:

Could not initialize inline Byte Buddy mock maker.

It appears as if your JDK does not supply a working agent attachment mechanism.

Java : 17

JVM vendor name : Amazon.com Inc.

JVM vendor version : 17.0.11+9-LTS

JVM name : OpenJDK 64-Bit Server VM

JVM version : 17.0.11+9-LTS

JVM info : mixed mode, sharing

OS name : Windows 11

OS version : 10.0

at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260)

at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23)

... 18 more

Caused by: java.lang.IllegalArgumentException

at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method)

at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:220)

at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177)

... 19 more

Caused by: [CIRCULAR REFERENCE: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker]

이러한 에러가 생깁니다

답변 2

0

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

해당 프로젝트에서 사용중인 JDK가 Amazon JDK 17로 보여집니다.

아래에서 17.0.2 (build 17.0.2+8)로 JDK를 다운받으신 후 기존 것을 새로 다운받은 것으로 대체하신 뒤 다시 시도해 보시겠어요?

https://jdk.java.net/archive

 

JDK 설치 후, 인텔리제이에서 설정하는 방법은 아래 가이드를 참고해 주세요.

image

 

감사합니다.

ckstj8027님의 프로필 이미지
ckstj8027
질문자

바꾸니까 아예실행이 안되네요

Unable to start the daemon process.

This problem might be caused by incorrect configuration of the daemon.

For example, an unrecognized jvm option is used.For more details on the daemon, please refer to https://docs.gradle.org/8.8/userguide/gradle_daemon.html in the Gradle documentation.

Process command line: D:\jdk-17.0.2\bin\java.exe --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -XX:MaxMetaspaceSize=384m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=KR -Duser.language=ko -Duser.variant -cp C:\Users\3\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\gradle-launcher-8.8.jar -javaagent:C:\Users\3\.gradle\wrapper\dists\gradle-8.8-bin\dl7vupf4psengwqhwktix4v1\gradle-8.8\lib\agents\gradle-instrumentation-agent-8.8.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.8

Please read the following process output to find out more:

ckstj8027님의 프로필 이미지
ckstj8027
질문자

imageimage21 로바꾸거나 처음 17 corretto 쓰는경우 이런식으로 다른건 다 실행되는데 테스트 스프링 부트만 저런식으로 오류가 생깁니다

실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

0

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

ckstj8027님의 CoreAppicationTests에서 발생하는 java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker와 관련된 에러는 Mockito와 JDK의 호환성 문제로 인해 발생할 수 있습니다. 특히, 에러 로그에서 Mockito가 필요한 Java Agent를 초기화할 수 없다는 내용이 나타나고 있습니다. 이는 JDK의 일부 변화로 인해 Mockito의 일부 기능이 예상대로 작동하지 않을 때 발생할 수 있습니다.

해결 방법으로는 몇 가지 접근이 가능합니다:

  1. Mockito 버전 확인 및 업데이트: 프로젝트에 사용중인 Mockito 버전이 JDK 버전과 호환되는지 확인하고, 가능한 최신 버전으로 업데이트 해보세요. 때로는 최신 버전의 라이브러리가 새로운 JDK 버전의 변경사항을 반영하여 문제를 해결할 수 있습니다.

  2. Inline MockMaker 사용: mockito-inline 의존성을 프로젝트에 추가하여 static 또는 final 클래스/메소드의 mocking을 활성화할 수 있습니다. 이 방법이 ckstj8027님의 경우에 적용되었는지 확인해보세요. 이미 적용했다면, 이와 관련된 설정을 다시 한번 점검해보는 것이 좋습니다.

  3. JDK 버전 다운그레이드: 충돌을 일으키는 JDK 버전(예: 17)의 특정 구현이 문제를 유발할 수 있습니다. 이 경우, 다른 버전의 JDK로의 전환을 고려해 볼 수 있습니다. 예를 들어, JDK 11이나 8 버전으로 변경해 테스트를 실행해 보세요.

유사한 문제에 대한 질문과 답변 링크를 참고할 수 있습니다:
- 스프링 통합테스트 도중 MemberSeviceIntegrationTest 오류에서 JDK 및 Mockito 버전 호환성 문제에 대해 다룹니다.
- 테스트 코드 오류 - java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)는 Mockito의 MockMaker 플러그인 초기화 문제를 다루며 유사한 작업환경에서 발생한 문제에 대한 해결 방법을 제시합니다.

기술적인 문제가 계속된다면, 사용 중인 Mockito 버전, JDK 버전 및 관련 의존성 설정을 재확인하고 필요하다면 Mockito 공식 문서나 자바 개발 키트(JDK) 릴리스 노트를 참고하여 호환성 문제를 해결하도록 하세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.