NoClassDefFoundError:Mockito Bytebuddy

时间:2016-05-24 18:07:22

标签: java eclipse maven mockito

我最近通过添加外部jar“mockito-core-2.0.53-beta.jar”并尝试创建我的第一个模拟对象(函数中的第二行),将Mockito添加到eclipse上的maven项目中/ p>

enter image description here

运行它后,控制台打印出第一行,然后抛出此错误:

enter image description here

之前似乎有一个类似的问题,但它应该在内部修复。 https://github.com/raphw/byte-buddy/issues/99

这里出了什么问题?

4 个答案:

答案 0 :(得分:10)

您根本忘记根据pom文件将依赖项添加到项目中:

<dependency>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy</artifactId>
  <version>1.3.16</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.objenesis</groupId>
  <artifactId>objenesis</artifactId>
  <version>2.1</version>
  <scope>runtime</scope>
</dependency>

换句话说,您还需要在项目中添加byte-buddy 1.3.16objenesis 2.1

更多详情here

答案 1 :(得分:1)

改为添加

  

的Mockito核

更好的选择是添加

  

的Mockito-所有

请参阅此链接https://mvnrepository.com/artifact/org.mockito/mockito-all/2.0.2-beta

答案 2 :(得分:1)

有一篇文章很好地解释了这个问题,您可以在这里找到它:

https://solidsoft.wordpress.com/2012/09/11/beyond-the-mockito-refcard-part-3-mockito-core-vs-mockito-all-in-mavengradle-based-projects/

如果您不使用gradle或maven,而仅使用嘲笑核心,则应添加以下依赖项:

<dependency>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy</artifactId>
  <version>1.7.9</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.objenesis</groupId>
  <artifactId>objenesis</artifactId>
  <version>2.4</version>
  <scope>runtime</scope>
</dependency>

答案 3 :(得分:0)

  

java.lang.NoClassDefFoundError

这表明您的.jar(org.mockito)中没有该类。 当您在类路径中有多个.jar(具有不同版本)时,通常会发生这种情况。你可以检查一下。