강의

멘토링

커뮤니티

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

오키님의 프로필 이미지
오키

작성한 질문수

테스트코드 junit 자바17 mock 버전 호환 에러

작성

·

10

0

java 17
빌드그래들
junit5
테스트 코드 작성하는데

@mock에 대해 계속 에러가 발생합니다
Could not initialize inline Byte Buddy mock maker

5.xx 의존성 추가해줘도 자바에서 계속 mock를 거부한다는데 호환성 문제 어떻게해결할수있나요..?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
오키님, Java 17과 JUnit5 사용 시 발생하는 @Mock 관련 오류는 주로 Byte Buddy와의 호환성 문제일 수 있습니다. 이 문제를 해결하기 위해, 다음을 시도해보세요:

  1. Mockito 버전 확인 및 업데이트: 최신 버전의 Mockito를 사용하고 있는지 확인합니다. 최신 버전에서는 Java 17과의 호환성이 개선되었을 수 있습니다.

  2. Byte Buddy 버전 업데이트: Mock 라이브러리에 종속된 Byte Buddy의 버전이 최신인지 확인합니다. 가장 최신 버전을 사용해 보세요.

  3. SpringMockK 사용: Kotlin과 같은 환경에서 MockK와 SpringBoot를 함께 사용할 때 호환성 문제를 피할 수 있습니다. SpringMockK는 @MockkBean@SpykBean을 제공하므로 알맞게 전환할 수 있습니다.

바꾸어도 문제가 지속된다면, 사용하신 라이브러리 버전 정보 및 에러 메시지를 자세히 제공해 주시면 추가적인 도움을 드릴 수 있습니다.
- MockK: 공식 문서

위의 조언들이 문제 해결에 도움이 되기를 바랍니다!

오키님의 프로필 이미지
오키
질문자

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.5.5'
    id 'io.spring.dependency-management' version '1.1.7'
}


자바 버전 17에서 21로 변경, mockito 5.xx 최신 버전으로 변경해도 같은 에러에서 벗어나지못했습니다..
밑에는 전체 에러입니다.
> 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

at app//org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:275)

at app//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

> Task :test

AuthServiceTest > asd() FAILED

java.lang.IllegalStateException at PluginLoader.java:85

Caused by: java.lang.IllegalStateException at DefaultMockitoPlugins.java:105

Caused by: java.lang.reflect.InvocationTargetException at Constructor.java:499

Caused by: org.mockito.exceptions.base.MockitoInitializationException at InlineDelegateByteBuddyMockMaker.java:275

Caused by: java.lang.IllegalArgumentException at InstrumentationImpl.java:-2

1 test completed, 1 failed

> Task :test FAILED

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':test'.

> There were failing tests. See the report at: file:///C:/%EC%8A%A4%ED%94%84%EB%A7%81/Artrip/build/reports/tests/test/index.html

* Try:

> Run with --scan to get full insights.

BUILD FAILED in 12s

4 actionable tasks: 2 executed, 2 up-to-date


오키님의 프로필 이미지
오키

작성한 질문수

질문하기