Android测试简介

Android

  I. 测试与基本规范

  1. 为什么需要测试?

  为了稳定性,能够明确的了解是否正确的完成开发。

  更加易于维护,能够在修改代码后保证功能不被破坏。

  集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabricator differential 发diff时提交需要执行的单元测试,在开发流程上就可以保证远端代码的稳定性)。

  2. 测什么?

  一般单元测试:

  列出想要测试覆盖的异常情况,进行验证。

  性能测试。

  模拟测试: 根据需求,测试用户真正在使用过程中,界面的反馈与显示以及一些依赖系统架构的组件的应用测试。

  3. 需要注意

  考虑可读性,对于方法名使用表达能力强的方法名,对于测试范式可以考虑使用一种规范, 如 RSpec-style。方法名可以采用一种格式,如: [测试的方法]_[测试的条件]_[符合预期的结果]。

  不要使用逻辑流关键字(If/else、for、do/while、switch/case),在一个测试方法中,如果需要有这些,拆分到单独的每个测试方法里。

  测试真正需要测试的内容,需要覆盖的情况,一般情况只考虑验证输出(如某操作后,显示什么,值是什么)。

  考虑耗时,Android Studio默认会输出耗时。

  不需要考虑测试private的方法,将private方法当做黑盒内部组件,测试对其引用的public方法即可;不考虑测试琐碎的代码,如getter或者setter。

  每个单元测试方法,应没有先后顺序;尽可能的解耦对于不同的测试方法,不应该存在Test A与Test B存在时序性的情况。

  4. 创建测试

  选择对应的类

  将光标停留在类名上

  按下ALT + ENTER

  在弹出的弹窗中选择Create Test

  II. Android Studio中的单元测试与模拟测试

  control + shift + R (Android Studio 默认执行单元测试快捷键)。

  1. 本地单元测试

  直接在开发机上面进行运行测试。

  在没有依赖或者仅仅只需要简单的Android库依赖的情况下,有限考虑使用该类单元测试。

  ./gradlew check

  代码存储

  如果是对应不同的flavor或者是build type,直接在test后面加上对应后缀(如对应名为myFlavor的单元测试代码,应该放在src/testMyFlavor/java下面)。

  src/test/java

  Google官方推荐引用

  dependencies {

  // Required -- JUnit 4 framework,用于单元测试,google官方推荐

  testCompile 'junit:junit:4.12'

  // Optional -- Mockito framework,用于模拟架构,google官方推荐

  testCompile 'org.mockito:mockito-core:1.10.19'

  }

    2. 模拟测试

  需要运行在Android设备或者虚拟机上的测试。

  主要用于测试: 单元(Android SDK层引用关系的相关的单元测试)、UI、应用组件集成测试(Service、Content Provider等)。

posted @ 2017-04-07 17:06  风也不知道往哪吹  阅读(149)  评论(0编辑  收藏  举报