现在我正在使用mockito或其他东西为我们的项目创建一个单元测试框架。我发现有一个任务应用程序:mockableAndroidJar,它可以构建一个可模拟的AndroidJar jar文件。这是干什么用的?如何使用?我还没有找到关于它的介绍。
几个模拟框架,包括 Mockito,通过覆盖模拟或监视类的方法工作。但是,Android 库使用了许多final
类和方法,这些类和方法更适合为嵌入式设备进行编译(因为它们跳过了虚拟方法查找),但对模拟并不友好。
最新版本的 Android 开发人员工具包包括对可模拟 Android 库的支持,该库与普通的 Android 支持库相同,但删除了所有处的final
修饰符。这将允许您模拟View
和Context
等课程,而不必担心final
限制。
请参阅此处的文档:
-
Android Tools 项目网站 - 单元测试支持
单元测试在开发计算机上的本地 JVM 上运行。我们的 gradle 插件将编译在 src/test/java 中找到的源代码,并使用通常的 Gradle 测试机制执行它。在运行时,将针对修改后的 android 版本执行测试.jar其中所有最终修饰符都已被剥离。这允许您使用流行的模拟库,例如 Mockito。
-
适用于 Gradle 发行说明的安卓插件
添加了可模拟
android.jar
的共享,插件仅生成一次并用于单元测试。多个模块,例如app
和lib
,现在共享它。删除$rootDir/build
以重新生成它。