当前位置: 首页 > 知识库问答 >
问题:

Mockito投掷java.lang.NoClassDefFoundError和java.lang.VerifyError

阮俊弼
2023-03-14

我有两个类(SimManager和Sim),我想为它们创建模拟对象,然后使用存根方法

1  public class ContactTypeTest extends AndroidTestCase {
2  
3    @Override
4    public void setUp() throws Exception {
5      super.setUp();
6    
7      SimManager mockSimManager = mock(SimManager.class);
8      Sim mockSim = mock(Sim.class);
9       
10     when(mockSim.getOperator()).thenReturn("operator");
11     when(mockSim.getCircle()).thenReturn(circle);
12     when(mockSimManager.findSimBySerial("simSerial")).thenReturn(mockSim);
13    
14   }
15
16 }

测试在上面第9行抛出这两个错误跟踪。

第一:

Java语言lang.VerifyError:org/mockito/cglib/core/reflectils at org。莫基托。cglib。果心KeyFactory$发电机。在org上生成Class(KeyFactory.java:167)。莫基托。cglib。果心DefaultGeneratorStrategy。在org生成(DefaultGeneratorStrategy.java:25)。莫基托。cglib。果心抽象类生成器。在org上创建(AbstractClassGenerator.java:217)。莫基托。cglib。果心KeyFactory$发电机。在org上创建(KeyFactory.java:145)。莫基托。cglib。果心钥匙工厂。在org上创建(KeyFactory.java:117)。莫基托。cglib。果心钥匙工厂。在org上创建(KeyFactory.java:109)。莫基托。cglib。果心钥匙工厂。在org上创建(KeyFactory.java:105)。莫基托。cglib。代理增强剂。(Enhancer.java:70)在org。莫基托。内部的创造杰莫克。分类器。在org上创建ProxyClass(ClassImposterizer.java:85)。莫基托。内部的创造杰莫克。分类器。在org上冒用(ClassImposterizer.java:62)。莫基托。内部的创造杰莫克。分类器。在org上冒用(ClassImposterizer.java:56)。莫基托。内部的创造CglibMockMaker。在org上创建mock(CglibMockMaker.java:23)。莫基托。内部的util。MockUtil。在org上创建mock(MockUtil.java:26)。莫基托。内部的MockitoCore。org上的mock(MockitoCore.java:51)。莫基托。莫基托。org上的mock(Mockito.java:1243)。莫基托。莫基托。在中的mock(Mockito.java:1120)。口吃。bi。测验果心消息接触类型测试。android上的设置(ContactTypeTest.java:25)。测验AndroidTestRunner。android上的runTest(AndroidTestRunner.java:191)。测验AndroidTestRunner。android上的runTest(AndroidTestRunner.java:176)。测验InstrumentationTestRunner。android上的onStart(InstrumentationTestRunner.java:554)。应用程序。Instrumentation$InstrumentationThread。运行(Instrumentation.java:1741)

第二:

Java语言lang.NoClassDefFoundError:org/mockito/internal/creation/jmock/classimpositer$3。莫基托。内部的创造杰莫克。分类器。在org上创建ProxyClass(ClassImposterizer.java:85)。莫基托。内部的创造杰莫克。分类器。在org上冒用(ClassImposterizer.java:62)。莫基托。内部的创造杰莫克。分类器。在org上冒用(ClassImposterizer.java:56)。莫基托。内部的创造CglibMockMaker。在org上创建mock(CglibMockMaker.java:23)。莫基托。内部的util。MockUtil。在org上创建mock(MockUtil.java:26)。莫基托。内部的MockitoCore。org上的mock(MockitoCore.java:51)。莫基托。莫基托。org上的mock(Mockito.java:1243)。莫基托。莫基托。在中的mock(Mockito.java:1120)。口吃。bi。测验果心消息接触类型测试。android上的设置(ContactTypeTest.java:25)。测验AndroidTestRunner。android上的runTest(AndroidTestRunner.java:191)。测验AndroidTestRunner。android上的runTest(AndroidTestRunner.java:176)。测验InstrumentationTestRunner。android上的onStart(InstrumentationTestRunner.java:554)。应用程序。Instrumentation$InstrumentationThread。运行(Instrumentation.java:1741)

我在libs文件夹中添加了mockito-all-1.9.5.jar,并将其添加到构建路径中。我不明白有什么问题。请帮助。

共有1个答案

阴福
2023-03-14

我认为你必须使用Dexmaker。

看看这个帖子:

Mockito Android动态代理

 类似资料:
  • 有人可以解释我什么时候使用关键字 throw new 有用.而不是在方法的签名旁边使用抛出? 我知道当方法抛出Checked Exception时。Java迫使我们通过将Exception处理到try-catch块中,或者通过在签名旁边的关键字throws指定将在其他地方完成,从而直接在方法中处理它。 然而,我很难理解何时使用关键字throw new是有用的,以及为什么。它与处理未选中的异常有关吗

  • 我正在用python运行下面的代码 我每次都会遇到下面的错误-有人能帮忙吗! OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK 2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或configure脚本),位于cvShowImage、file/Users/travis/buil

  • 我在视图中有一个ImageView,并尝试用它显示一个WritableImage实例。我正在外线程中绘制它,并通过侦听ObjectProperty的更改事件将其传递给视图。 imageView应该准备好接收图像,它由我的主视图显示。但是这是一个不合法的例外 线程“Thread-4”Java . lang . illegalstateexception中的异常:不在FX应用程序线程上;当前线程=线程

  • 我有下面的代码,它按照预期工作: 我想知道是否有一种方法,只有一个orElseThrow-Part,或做它更少的冗余?

  • 我向服务器调用一个请求网络,服务器总是响应如下所示的格式json: 对于每种请求,只有jsonObject数据包含不同的字段。新响应的示例: 因此,我决定让一个通用类调用ServerResult包含一个字段“Object”,以便将其强制转换为特定对象。 //ServerResult.class //client.java 请求完成后,我通过GSON将json转换为ServerResult对象: 然

  • 无法弄清楚这是怎么回事-试图设置一个路由,只看到cxf连接到soap web服务(我不关心实际数据,也不期望数据实际“工作”,但它不断引发一个我不理解的异常: 我想知道我是否正确配置了它。我想这可能是一个丢失的jar,但当我尝试引入其他jar时,导致了依赖冲突 我正在使用maven依赖项“camel-cxf”来加载我所有的jar配置 “原因:org.apache.cxf.bus.extension