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

塞莱波

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

我已经缩小了范围,当我仅具有类级别的注释@PrepareForTest(以及@RunWith(PowerMockRunner.class),但没有任何实际的模拟代码)时,我得到java.lang.NoClassDefFoundError: javassist/NotFoundException:如果我注释掉@PrepareForTest,以及任何实际的模拟代码以消除混淆的变量,该错误不会发生;如果我只注释@PrepareForTest,则将发生错误。所以我相信这可以将问题缩小到仅与尝试使用批注有关...

我的构建路径上有以下jar: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),

为了得到该错误,我可能做错了什么?

塞莱波

几乎帮助我弄清楚了)

非常简单的解决方案(一开始我几乎是正确的):我缺少了一些PowerMockito依赖罐(来自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下载页面包含了所有这些内容:在1st出现问题时,我仅下载并添加了powermock-mockito-1.5.4。 -full.jar; 我已经有了JUnit和Mockito罐子,所以我认为这3个罐子让我编写PowerMock代码,而在Eclipse中没有任何编译错误。googlecode下载页面的zip中包含powermockito jar +依赖项,但也说powerockito jar也可以单独使用。这种情况让我很难意识到我在想念其他人,因为从我的角度看来我已经拥有了我所需要的一切(认为我已经拥有了我现有的JUnit和Mockito jars所需的依赖项)。

实际上,具有依赖项的zip具有解决问题所需的其他功能。我应该仔细检查一下第一个,但没有意识到我做出了相反的错误假设。

所以...答案是确保获得具有所有依赖项的zip [并将它们全部添加到您的buildpath中]最后,Kinda显然是愚蠢的,但是嘿,许多软件错误和问题最终是:我们没有意识到我们做的简单的错误假设或被忽略的细节,因此在进行故障排除时需要一些时间才能意识到。 ..

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章