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 [并将它们全部添加到您的构建路径].最后我有点明显而且愚蠢,但是,嘿,很多软件错误和问题最终都是:简单的错误假设或我们没有意识到的忽略的细节,因此在故障排除时需要花费一些时间来实现. ..

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...