使用Robolectric
进行Android
代码测试的时候,随着测试用例的增多,可能会报告如下错误(Windows
下常见):
1 2 3 4 5 |
> 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
的类,如下:
1 2 3 4 5 6 7 8 9 |
package org.mockito.configuration; public class MockitoConfiguration extends DefaultMockitoConfiguration { @Override public boolean enableClassCache() { return false; } } |
这样当再次执行测试用例的时候,就已经不使用缓存了。