junit 테스트코드 @mock 에러
22
작성한 질문수 11
안녕하세요 협업중 저만 테스트코드에서 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
문제가 잘 해결되길 바랍니다!
환경설정 문
2
32
2
질문있어요!
2
42
2
수업 잘 들었습니다.
2
33
2
volatile에 대해 질문 있습니다.
2
40
2





