转载

安卓unit与instrumentation测试教程

为什么Andr oid应用的测试很重要?

Android设备内存,CPU和电池都有限。应用的行为也外部因素有关,如连接性、系统利用等。因此调试、测试和优化Android应用非常重要。

Android的测试不可能覆盖所有Android设备,通常只覆盖典型设备。确保应用至少覆盖尽可能低的配置设备上使用和尽可能高的配置设备,例如像素密度、屏幕分辨率等。

2015年Android应用程的工具和框架的支持有巨大的改善。Android测试系统已经更新到基于JUnit4中,你可以在Java虚拟机或在Android运行时运行单元测试。此外谷歌推出了一款名为Espresso的用户界面测试框架。

Android自动化测试

Android应用的测试内容一般来说应该专注于测试应用的业务逻辑。建议:

  • 70-80%的单元测试以确保您的代码的稳定性
  • 20-30%的功能测试确保应用能运作
  • 有交互的情况下还需要考虑跨应用测试

Android单元和instrumentation单元测试

Android的单元测试是基于JUnit的。可分为:

  • 本地单元测试 - 可以在JVM上运行测试(速度快,优先考虑)。
  • Instrumented单元测试 - 需要Android系统

Android的Gradle插件支持在JVM上执行Andr oid单元测试。它使用特殊版本的android.jar(也称为 Android mockable jar)支持单元测试,使所有字段,方法和类可用。任何调用到Android mockable JAR默认都是异常。快速但是不能测试安卓相关内容。Instrumented可测试Android API。

安卓unit与instrumentation测试教程

工程结构和测试文件夹

建议:

app/src/main/java - 源代码

app/src/test/java - 本地测试

app/src/androidTest/java - Instrumented单元测试

如果你这些约定,Android构建系统会自动在JVM上运行单元测试、在Android设备上运行安卓测试。

执行测试

指定测试类型:

安卓unit与instrumentation测试教程

查看测试执行:

安卓unit与instrumentation测试教程

如果看到"error duplicate files in path. Path in archive: LICENSE.txt"错误,修改app/gradle.build

android {     packagingOptions {     exclude 'LICENSE.txt'     } }

JVM单元测试

参考资料:http://www.sunmoonblog.com/blog/2015/06/10/android-testing/

正文到此结束
Loading...