使用`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; } }
这样当再次执行测试用例的时候,就已经不使用缓存了。