인프런 커뮤니티 질문&답변
junit 테스트코드 @mock 에러
작성
·
15
0
안녕하세요 협업중 저만 테스트코드에서 java 버전과 mock어노테이션간의 에러가 있다고 계속 뜨는데
같이 협업중인 개발자와 gradle ,자바 버전, 스프링부트 버전 싹다 맞췄고 인텔리제이 내부세팅까지 동일하게 맞췄는데도 저만 뜨는 에러인거면 또 확인할게 뭐가 있을까요..?
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
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.proxy3/jdk.proxy3.$Proxy16.isTypeMockable(Unknown Source)
at org.mockito.internal.util.MockUtil.typeMockabilityOf(MockUtil.java:78)
at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:22)
at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:275)
at org.mockito.internal.creation.MockSettingsImpl.build(MockSettingsImpl.java:236)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:82)
at org.mockito.Mockito.mock(Mockito.java:2198)
at org.mockito.internal.configuration.MockAnnotationProcessor.processAnnotationForMock(MockAnnotationProcessor.java:79)
at org.mockito.internal.configuration.MockAnnotationProcessor.process(MockAnnotationProcessor.java:28)
at org.mockito.internal.configuration.MockAnnotationProcessor.process(MockAnnotationProcessor.java:25)
at org.mockito.internal.configuration.IndependentAnnotationEngine.createMockFor(IndependentAnnotationEngine.java:44)
at org.mockito.internal.configuration.IndependentAnnotationEngine.process(IndependentAnnotationEngine.java:72)
at org.mockito.internal.configuration.InjectingAnnotationEngine.processIndependentAnnotations(InjectingAnnotationEngine.java:62)
at org.mockito.internal.configuration.InjectingAnnotationEngine.process(InjectingAnnotationEngine.java:47)
at org.mockito.MockitoAnnotations.openMocks(MockitoAnnotations.java:81)
at org.mockito.internal.framework.DefaultMockitoSession.<init>(DefaultMockitoSession.java:43)
at org.mockito.internal.session.DefaultMockitoSessionBuilder.startMocking(DefaultMockitoSessionBuilder.java:83)
at org.mockito.junit.jupiter.MockitoExtension.beforeEach(MockitoExtension.java:160)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
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:1777)
at org.mockito.junit.jupiter.MockitoExtension.beforeEach(MockitoExtension.java:156)
... 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)
... 10 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 : Oracle Corporation
JVM vendor version : 17.0.10+11-LTS-240
JVM name : Java HotSpot(TM) 64-Bit Server VM
JVM version : 17.0.10+11-LTS-240
JVM info : mixed mode, sharing
OS name : Windows 10
OS version : 10.0
at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:275)
at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23)
... 13 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:175)
... 14 more
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
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:1777)
at org.mockito.junit.jupiter.MockitoExtension.beforeEach(MockitoExtension.java:156)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
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)
... 10 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 : Oracle Corporation
JVM vendor version : 17.0.10+11-LTS-240
JVM name : Java HotSpot(TM) 64-Bit Server VM
JVM version : 17.0.10+11-LTS-240
JVM info : mixed mode, sharing
OS name : Windows 10
OS version : 10.0
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
오키님, Mockito에서 발생하는 에러로 고생하고 계시군요. 주로 이 문제는 JDK의 agent attachment 메커니즘과 관련이 있을 수 있습니다. 몇 가지 확인할 사항을 안내해 드리겠습니다:
Byte Buddy 설정: Mockito는 기본적으로 Byte Buddy를 사용하여 mock을 생성합니다. 만약 Byte Buddy의 에이전트가 제대로 설치되지 않았거나, JDK의 버전과 호환되지 않는다면 이러한 문제가 발생할 수 있습니다.
MockMaker 설정 확인: 프로젝트의
resources/mockito-extensions/org.mockito.plugins.MockMaker파일에mockmaker-inline내용이 있는지 확인해보세요. 이 파일이 누락되었거나 설정이 잘못되었을 수 있습니다.JDK Compatibility Issues: 경우에 따라 최신 JDK 버전과의 호환성 문제일 수도 있습니다. 다른 JDK 버전으로 전환하여 문제가 해결되는지 확인해보는 것도 방법입니다.
의존성 충돌: 프로젝트 의존성 중 문제가 발생할 수 있으니 Mockito의 의존성 및 다른 라이브러리 의존성을 다시 확인해 보세요.
위의 방법으로 문제가 해결되지 않는다면, 사용하는 다양한 환경(Gradle, IDE, JDK, Mockito 및 기타 라이브러리 버전)에 따라 다르게 대응해야 할 수 있습니다. 추가적인 로그나 설정 정보를 함께 검토하는 것도 도움이 될 수 있습니다.
추가로, 더 많은 도움을 위해 아래의 링크도 확인해보세요:
Spring Boot Reference Documentation - Testing With Mock
문제가 잘 해결되길 바랍니다!




