首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mockito1.9.5和DexMaker- Mockito -1.0的VerifyError

使用Mockito1.9.5和DexMaker- Mockito -1.0的VerifyError
EN

Stack Overflow用户
提问于 2012-10-24 20:13:31
回答 5查看 5.8K关注 0票数 19

像其他许多人一样,听到这个Mockito now works with Android我很兴奋,并跟随this tutorial亲眼看到了它。一切看起来都很有趣,我开始将模拟解决方案整合到我的Android测试项目中……

错误

但是,在设置我的应用程序的测试项目以利用mockito-all-1.9.5dexmaker-1.0dexmaker-mockito-1.0 jars时,我遇到了第一个测试用例的问题。确切地说,实际上是this problem。我希望得到帮助的部分是;

代码语言:javascript
复制
Caused by: 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.<clinit>(Enhancer.java:70)

我被告知这“还不是很有效”,因为堆栈跟踪意味着DexMaker jar没有被使用-引用this response。然而,我怀疑我在我的项目设置方面做错了什么,所以我希望从这里的集体知识库中吸取教训,看看这是否确实是用户错误或beta-bug。

我的Android测试项目设置

请在下面找到我的测试项目配置的截图。该项目是通过安卓向导创建的,除了在libs目录下包含了Mockito和DexMaker jars (如上所述)之外,没有其他特殊功能。

测试

不要管测试的内容(在执行单元测试之前测试失败),设置如下所述;

代码语言:javascript
复制
public class TestSpotRatingCalculator extends InstrumentationTestCase {
  @Mock
  private AService aService; // Changed the service names being used here - not important.
  @Mock
  private BService bService;
  @Mock
  private CService cService;
  @Mock
  private DService dService;

  /**
   * @see android.test.AndroidTestCase#setUp()
   */
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    MockitoAnnotations.initMocks(this);  // Failure here with aforementioned stacktrace...
  }

如果有人知道哪里出了问题,请在这里发声。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-25 18:14:39

正如在here上所暗示的那样,当仪器测试在真正的设备上运行时,dexmaker android组合才能100%工作。

在真实设备上运行测试不会显示此故障。

票数 2
EN

Stack Overflow用户

发布于 2013-09-15 23:54:20

嗨,我也有同样的问题,我发现这篇文章真的很有用!

http://corner.squareup.com/2012/10/mockito-android.html

关键信息是:

要在设备或模拟器上使用Mockito,您需要将三个.jar文件添加到测试项目的libs目录中:mockito-all-1.9.5.jardexmaker-1.0.jardexmaker-mockito-1.0.jar

票数 12
EN

Stack Overflow用户

发布于 2014-12-02 18:00:45

只需在gradle中添加以下内容:

代码语言:javascript
复制
androidTestCompile 'org.mockito:mockito-core:1.10.8'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.1'
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13048985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档