首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Mockito与Java11一起使用时出现异常

将Mockito与Java11一起使用时出现异常
EN

Stack Overflow用户
提问于 2020-01-28 00:38:22
回答 1查看 3.1K关注 0票数 1

我们正在从Java 8升级到11。在完成所有必要的SDK更改后,我开始使用maven运行单元测试。所有使用Mockito的测试都会失败,并显示

代码语言:javascript
复制
java.lang.ClassCastException: 
class org.mockito.codegenEventapiManager$MockitoMock$1091821173 cannot be cast to class
org.mockito.internal.creation.bytebuddy.MockAccess
(org.mockito.codegenEventapiManager$MockitoMock$1091821173 is in unnamed module of loader
org.powermock.core.classloader.javassist.JavassistMockClassLoader @1473b8c0;
org.mockito.internal.creation.bytebuddy.MockAccess is in unnamed module of loader 'app')
at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMock(SubclassByteBuddyMockMaker.java:48)
    at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.createMock(ByteBuddyMockMaker.java:25)
    at org.powermock.api.mockito.mockmaker.PowerMockMaker.createMock(PowerMockMaker.java:41)
    at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:35)
    at org.mockito.internal.MockitoCore.mock(MockitoCore.java:62)
    at org.mockito.Mockito.mock(Mockito.java:1896)
    at org.mockito.Mockito.mock(Mockito.java:1805)
    [...line where we cal Mockito, rest is ommitted]

这是否与某些依赖项中的版本号不匹配有关?

我们使用的是

代码语言:javascript
复制
mockito-core 2.24.0, excluding byte-buddy, byte-buddy-agent and objenesis
powermock-module-testng 2.0.4 (excluding above)
powermock-api-mockito2 2.0.4
objenesis 3.1
byte-buddy 1.9.7
byte-buddy-agent 1.9.7

嘲笑这个类是很直接的:

代码语言:javascript
复制
EventapiManager mockManager = Mockito.mock(EventapiManager.class);

被模仿的类本身是公共的,并且一切在Java 8上都工作得很好。

EN

回答 1

Stack Overflow用户

发布于 2020-01-28 20:13:14

我以一种意想不到的方式解决了我的问题:当我在谷歌上搜索解决方案时,我遇到了this comment,它描述了我的另一个失败的测试。在该测试夹具中,我们确实使用了注释中描述的PowerMock注释,但是没有任何建议的被忽略的包。所以我添加了它们,列出了被忽略的包的完整列表:

代码语言:javascript
复制
@PowerMockIgnore({"javax.management.*", "javax.script.*", "com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})

这神秘地解决了所有的故障,包括上面那些在不同的包中有固定装置的故障。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59935340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档