Robolectric单元测试报错“org.mockito.exceptions.base.MockitoException Caused by: java.lang.ClassCastException”

使用`Robolectric`进行`Android`代码测试的时候,随着测试用例的增多,可能会报告如下错误(`Windows`下常见):

> Task :biz-h5:testDebugUnitTest

com.xxxx.plugin.face.FaceTest > executeAsync_Success FAILED
    org.mockito.exceptions.base.MockitoException at FaceTest.java:71
        Caused by: java.lang.ClassCastException at FaceTest.java:71

原因为`Mockto`使用了编译缓存导致加载类的时候出现异常。解决方法是禁止`Mockto`缓存测试类的代码。

在`Android`测试项目的`src/test/java`下创建一个名为`org.mockito.configuration`的包,然后实现一个名为`MockitoConfiguration.java`的类,如下:

package org.mockito.configuration;

public class MockitoConfiguration extends DefaultMockitoConfiguration {

  @Override
  public boolean enableClassCache() {
    return false;
  }
}

这样当再次执行测试用例的时候,就已经不使用缓存了。

参考链接


发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注