Robolectric/PowerMock测试AIDL相关类

在编写单元测试用例的时候,如果被测试类是与AIDL相关的类,不管是直接调用,还是被测试类继承了AIDL生成的类,由于AIDL类是在编译期间动态生成的,并且每次构建都会重新生成一次(类名相同,但是Hash可能会变,文件修改日期必然变更)。

然而,由于PowerMock调用Objenesis库为了加快编译速度,会缓存同名的类,这样导致在运行时进行类型转换的时候无法通过校验,报告如下错误:

解决方法就是阻止Objenesis的缓存功能。在测试用例的根目录下新建文件,如下:

参考链接


发布者

发表回复

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