理论实践

为什么要测试

在 android 开发的过程中,编写与运行测试会帮助你更早的找到问题,从而你可以对编写的代码充满信心。

我该测什么

  1. 验证应用程序的特定行为
  2. 验证面向约定的特定行为
  3. 检查在不同的Andr​​oid设备上的一致性
  4. 验证文件读写行为
  5. 验证私有类库的行为

测试类别

  1. 运行在 JVM 上的测试
  2. 运行在 ANDROID设备或者模拟器上的测试。
  3. 优先使用前者,因为它相较于后者更便捷。

Getting Started with Testing

Getting Started with Testing,有代理的建议直接点链接读原文吧。

配置单元测试环境

面向AndroidStudio 中的 app的build.grade 中配置:

dependencies {    // Required -- JUnit 4 framework    testCompile 'junit:junit:4.12'    // Optional -- Mockito framework    testCompile 'org.mockito:mockito-core:1.10.19'}

编译运行单元测试

测试代码默认编译src/test/java该目录。
AndroidStudio执行测试用例需要如下3步:
1. 选择你的Project 窗口, 选择到synchronize 功能并点击。
2. 点击版面左侧的 Build Variants 窗口,切换 test artifact 为 Unit Tests
3. 选择你的 Project 窗口, 选中单元测试类或者方法,紧接着右键执行它。 若你希望执行整个目录,则选择该目录右键执行它。
Android Studio 会在下方 的 Run 窗口中显示单元测试的结构。

配置Instrumented测试环境

Instrumented测试是在Android设备或模拟器上运行测试。
这些测试可以获取到Instrumentation的信息,比如应用程序的Context

通常Instrumented测试用于:

  • 单元测试
  • 用户接口(UI)测试
  • 组件间集成测试

如何针对具体需求定制Instrumented测试,可以见下方的帖子:

  • Building Instrumented Unit Tests - 构建具有Android的依赖而不能使用模拟对象容易地填充更复杂的单元测试。
  • Automating User Interface Tests - 创建测试,以验证用户界面正确行为对单个应用程序内或跨多个应用程序的交互用户交互。
  • Testing App Component Integrations - 验证不直接与用户界面的交互组件,例如Service或Content Provider的行为。

Android Studio项目中,需要在src/androidTest/java 目录下编写测试代码。

下载Android测试支持库,它提供了API,允许您快速建立和您的应用程序运行的Instrumented测试代码。测试支持库中包含了,Junit4 Test Runner(AndroidJUnitRunner ),以及提供 UI测试的 接口们(Espresso 与 UI Automator)。要了解如何安装该库,请参阅测试支持库设置。

你需要配置Android测试依赖于项目中使用的测试运行,并通过测试支持库所提供的规则的API。为了简化测试开发,我们还建议您包括Hamcrest库,它可以让你创建一个使用Hamcrest匹配器的API更加灵活的断言。

在Android应用模块的build.gradle文件,指定你的依赖:

dependencies {    androidTestCompile 'com.android.support:support-annotations:23.0.1'    androidTestCompile 'com.android.support.test:runner:0.4.1'    androidTestCompile 'com.android.support.test:rules:0.4.1'    // Optional -- Hamcrest library    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'    // Optional -- UI testing with Espresso    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'    // Optional -- UI testing with UI Automator    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'}

编译运行Instrumented测试

Android StudioGradle插件,默认编译目录src/androidTest/java下的测试代码。编译生成test apkproduction apk,并将两者都安装在已连接的设备或模拟器上,并执行测试。

确保指定AndroidJUnitRunner作为项目的缺省测试Runner,所以在您的appbuild.gradle文件添加以下设置:

android {    defaultConfig {        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }}

Android Studio中运行:

  • 打开左侧的Build Variants选项卡,并将类型选择为Android Instrumentation Tests
  • 在项目窗口中,选择到你的仪表测试类或方法,然后右键单击并使用Android测试配置运行它。要运行的目录中的所有测试中用例,选择目录,然后单击鼠标右键,然后按运行测试。

使用Gradle命令运行:调用connectedAndroidTest(或cAT)任务。

./gradlew cAT

更多相关文章

  1. Android调试方法大全
  2. Android(安卓)Q Beta 6 终极测试版发布!
  3. 已经有一半的 Android(安卓)手机在运行 2.1 系统了
  4. Android中如何打开或关闭GPS
  5. 简单的android选项卡Tab菜单TabHost(一)同一Activity上实现
  6. Skype for Business预览版已登陆Android和iOS平台
  7. Android(安卓)Studio Error : Please Select android SDK 与 No t
  8. android解决No system images installed for this target
  9. React-Native系列Android——Win7系统环境搭建问题汇总

随机推荐

  1. Android获取手机屏幕参数的工具
  2. Android——ImageView设置圆形边框
  3. android uid gid
  4. android中获取手机短信,删除短信功能
  5. Aandroid 关于处理个推透传消息
  6. Java W3C 生成 XML
  7. Android与服务器http连接模块代码
  8. android--widget之menu
  9. HandlerTest
  10. MediaTest