gpt4 book ai didi

java - Mockito 抛出 java.lang.NoClassDefFoundError 和 java.lang.VerifyError

转载 作者:行者123 更新时间:2023-11-30 02:34:51 26 4
gpt4 key购买 nike

我有这两个类(SimManager 和 Sim),我想为其创建模拟对象,然后使用它们的 stub 方法。

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/ReflectUtils at org.mockito.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167) at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217) at org.mockito.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:117) at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:109) at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:105) at org.mockito.cglib.proxy.Enhancer.(Enhancer.java:70) at org.mockito.internal.creation.jmock.ClassImposterizer.createProxyClass(ClassImposterizer.java:85) at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:62) at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:56) at org.mockito.internal.creation.CglibMockMaker.createMock(CglibMockMaker.java:23) at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:26) at org.mockito.internal.MockitoCore.mock(MockitoCore.java:51) at org.mockito.Mockito.mock(Mockito.java:1243) at org.mockito.Mockito.mock(Mockito.java:1120) at in.mubble.bi.test.core.message.ContactTypeTest.setUp(ContactTypeTest.java:25) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1741)

第二个:

java.lang.NoClassDefFoundError: org/mockito/internal/creation/jmock/ClassImposterizer$3 at org.mockito.internal.creation.jmock.ClassImposterizer.createProxyClass(ClassImposterizer.java:85) at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:62) at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:56) at org.mockito.internal.creation.CglibMockMaker.createMock(CglibMockMaker.java:23) at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:26) at org.mockito.internal.MockitoCore.mock(MockitoCore.java:51) at org.mockito.Mockito.mock(Mockito.java:1243) at org.mockito.Mockito.mock(Mockito.java:1120) at in.mubble.bi.test.core.message.ContactTypeTest.setUp(ContactTypeTest.java:25) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1741)

我已将 mockito-all-1.9.5.jar 添加到我的 libs 文件夹中,并将其添加到构建路径中。我不明白这是什么问题。请帮忙。

最佳答案

我认为您必须使用 Dexmaker

看看这个线程:

Mockito Android dynamic proxies

关于java - Mockito 抛出 java.lang.NoClassDefFoundError 和 java.lang.VerifyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26732406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com