Android单元测试与模拟测试
作者:Jacks Blog 发布时间:[ 2016/5/20 17:43:48 ] 推荐标签:Android 模拟测试
考虑可读性,对于方法名使用表达能力强的方法名,对于测试范式可以考虑使用一种规范, 如 RSpec-style。
不要使用逻辑流关键字(If/ese、for、do/while、switch/case),在一个测试方法中,如果需要有这些,拆分到单独的每个测试方法里。
测试真正需要测试的内容,需要覆盖的情况,一般情况只考虑验证输出(如某操作后,显示什么,值是什么)。
考虑耗时,Android Studio默认会输出耗时。
不需要考虑测试 private 的方法,将 private 方法当做黑盒内部组件,测试对其引用的 public 方法即可。
尽可能的解耦对于不同的测试方法,不应该存在Test A与Test B存在时序性的情况。
II. Android自带基本的单元测试
control + shift + R (Android Studio 默认执行单元测试快捷键)。
1. 本地单元测试
直接在开发机上面进行运行测试。在没有依赖或者仅仅只需要简单的Android库依赖的情况下,有限考虑使用该类单元测试。
代码存储
如果是对应不同的flavor或者是build type,直接在test后面加上对应后缀(如对应名为 myFlavor 的单元测试代码,应该放在 src/testMyFlavor/java 下面)。
src/test/java
激活测试
在一个功能测试或验证的测试方法前面添加 @Test 的annotation。
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架构引用相关的单元测试)、UI、应用组件集成测试(Service、Content Provider、etc.)
代码存储:
src/androidTest/java
Google官方推荐引用
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'
}
常见的UI测试
需要模拟Android系统环境
主要三点:
UI加载好后展示的信息是否正确。
在用户某个操作后UI信息是否展示正确。
展示正确的页面供用户操作。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11