微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerMock Mockito [PowerMockito] @PrepareForTest – > java.lang.NoClassDefFoundError:javassist / NotFoundException

我正在尝试在现有的JUnit测试中使用我的第一个powermockito [PowerMock Mockito]模拟.

我已经缩小了当我只是存在类级别注释@PrepareForTest(以及@RunWith(powermockrunner.class),而不是任何实际的模拟代码)时,我得到java.lang.NoClassDefFoundError:javassist / NotFoundException :如果我注释掉@PrepareForTest,以及任何实际的模拟代码来消除混杂变量,那么错误就不会发生;如果我只对@PrepareForTest进行UN注释,则会发生错误.所以我认为这会将问题缩小到与尝试使用注释相关的问题……

我在我的构建路径上有这些罐子:junit-4.11.jaar,junit-addons-1.4.jar,mockito-all-1.9.5.jar,mockito-all-1.9.5-sources.jar,powermock-mockito-1.5. 4 full.jar.

powermock-mockito-1.5.4-full.jar是我为试用powermockito添加的唯一一个新版本(从https://code.google.com/p/powermock/wiki/Downloads?tm=2开始):它为我提供了编写新的powermockito模拟代码所需的一切,而没有Eclipse编译错误. (我已经从之前现有的JUnit& Mockito [单独,没有powermockito]测试中获得了其他提到的ars,)

得到那个错误我能做错什么?

解决方法

( This几乎帮我解决了)

非常简单的解决方案(我差不多开始):我错过了一些powermockito依赖jar(从https://code.google.com/p/powermock/wiki/Downloads?tm=2开始):具体来说{cglib-nodep-2.2.2.jar,javssist-3.18.1-GA.jar,objenesis -2.1.jar}.

这是一个简单的解决方案,有点愚蠢的错误,从第一位开始,因为powerMock googleCode下载页面包含所有这些:1,当我遇到问题时,我只下载并添加了powermock-mockito-1.5.4 -full.jar;我已经有了JUnit& Mockito jars,所以我认为这套3让我在Eclipse中编写没有任何编译错误的PowerMock代码. googlecode下载页面一个zip的powermockito jar dependecies,但也说单独提供powerockito jar.这种情况让我很难意识到我错过了其他一些人,因为看起来我从那个角度看到了我所需要的一切(以为我已经拥有了我现有的JUnit和Mockito罐子所需的依赖关系).

实际上,具有依赖性的zip具有解决问题所需的额外zip.我应该仔细检查第一,但没有意识到我做了相反的错误假设.

所以…答案是确保获得所有依赖项的zip [并将它们全部添加到您的构建路径].最后我有点明显而且愚蠢,但是,嘿,很多软件错误和问题最终都是:简单的错误假设或我们没有意识到的忽略的细节,因此在故障排除时需要花费一些时间来实现. ..

原文地址:https://www.jb51.cc/java/239976.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐