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