如何使用mockableAndroidJar?

时间:2016-01-18 11:06:11

标签: mockito android-testing

现在我正在使用mockito或其他东西创建项目的单元测试框架。我发现有一个任务app:mockableAndroidJar可以构建一个mockableAndroidJar jar文件。这是为了什么?如何使用它?我还没有找到关于它的介绍。

1 个答案:

答案 0 :(得分:9)

几个模拟框架,包括Mockito,通过覆盖模拟或间谍类的方法来工作。但是,Android库使用了许多final类和方法,这些类和方法更适合编译嵌入式设备(因为它们跳过虚拟方法查找)但对模拟不友好。

Android开发人员套件的最新版本包括对可模拟Android库的支持,该库与普通Android支持库相同,但在任何地方都删除了final修饰符。这样您就可以模拟ViewContext等类,而无需担心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的共享,该插件只生成一次并用于单元测试。多个模块(例如applib)现在共享它。删除$rootDir/build以重新生成它。