首页 > 解决方案 > java.lang.ClassCastException:无法将 org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker 转换为 org.mockito.plugins.MockMaker

问题描述

测试实现:

    testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.9.0'
    testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.9'
    testImplementation group: 'org.powermock', name: 'powermock-core', version: '2.0.9'
    testImplementation group: 'org.powermock', name: 'powermock-module-testng', version: '2.0.9'
    testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: ver.springBoot
    testImplementation group: 'org.testng', name: 'testng', version: '6.9.10'
    testImplementation group: 'net.bytebuddy', name: 'byte-buddy', version: '1.10.20'
    testImplementation group: 'net.bytebuddy', name: 'byte-buddy-agent', version: '1.10.20'
    testImplementation group: 'org.objenesis', name: 'objenesis', version: '3.2'

测试类:

public class TestAlgoQueryProcess extends PowerMockTestCase{


@Test
public static void test() {
           SBHttpClient<RPAResponse, PandoraGrootHttpDeserializer, byte[]> mockGrootClient = PowerMockito.mock(SBHttpClient.class);  // hits error at this point. 

}

如果我 powerMockIgnore "org.mockito.plugins.MockMaker" 我得到一个不同的错误:

Caused by: java.lang.LinkageError: loader constraint violation in interface itable initialization for class org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker: when selecting method 'org.mockito.plugins.MockMaker$TypeMockability org.mockito.plugins.MockMaker.isTypeMockable(java.lang.Class)' the class loader 'app' for super interface org.mockito.plugins.MockMaker, and the class loader org.powermock.core.classloader.javassist.JavassistMockClassLoader @6bc35f3f of the selected method's class, org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker have different Class objects for the type org.mockito.plugins.MockMaker$TypeMockability used in the signature (org.mockito.plugins.MockMaker is in unnamed module of loader 'app'; org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker is in unnamed module of loader org.powermock.core.classloader.javassist.JavassistMockClassLoader @6bc35f3f, parent loader 'app')

标签: gradlemockitotestngpowermockpowermockito

解决方案


推荐阅读