在AndroidStudio中进行单元测试
来源:互联网 发布:windows网络编程案例 编辑:程序博客网 时间:2024/06/05 17:30
参考文章:http://www.jianshu.com/p/03118c11c199
推荐Android测试相关:http://www.jianshu.com/collection/b26df74781cb
单元测试的流程
使用AndroidStudio进行单元测试时,与当前网上众多资料进行比较。在较新版本下(当前我使用的是2.0)的studio中不需要自己进行BuildVariants的设置以及依赖JUnit包。studio会自动完成这些操作。
进行基本的单元测试的操作流程如下
图中是我当前的目录结构,Calculator是实现计算的实体类,首先在Calculator中进行基本的逻辑编写,提供加减乘除四个方法。studio提供快速创建Test类的方法,对类名右击选择goto->test可以快速的创建或跳转到对应类。在Create Test中提供自动生成的选项,分别是对方法的测试与测试前后进行的一些行为。
在CalculatorTest文件中,在@Before注解中进行实体对象的创建,在@Test中分别进行方法的测试,代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
编写结束后运行即可得到测试结果。
assertEquals的三个参数分别为预期值,实际值,误差范围
将Calculator中sum方法返回值改为a-b,当测试结果与预期不一致时,显示结果如下:描述了预期值与实际值的结果与出错行数。
进行Instrumentation配置
androidTest文件夹是Android Instrumentation Tests的文件夹
test文件夹是Unit Tests的文件夹
首先进行gradle的配置
在defaultConfig下添加 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
在android下添加
- 1
- 2
- 3
- 1
- 2
- 3
在dependencies下添加
- 1
- 2
- 3
- 1
- 2
- 3
当与v7包版本冲突时,将v7包的版本改为与test相匹配即可。
Espresso测试流程
在MainActivity中进行相关逻辑处理与代码编写。
实现通过点击按钮,TextView显示EditText中的内容。
再创建相关测试类MainActivityInstrumentationTest,在代码中确定测试的类,以及测试的内容。通过 onView(withId())或onView(withText())获取相应控件并进行模拟操作。相关代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
MainActivity中的逻辑:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
运行测试类时,在模拟器上可以看到进行了@Test中的具体步骤:
通过onView可以获取控件,当需要点击的选项为ListView或Spinner这类控件中没有id的选项时,可以通过onData对其进行获取。
写出一个界面,里面有一个Spinner和TextView,通过点击Spinner的选项进行TextView显示的控制。测试的流程为,先点击Spinner,通过onData获取Spinner中的某个条目并进行模拟点击,最后验证TextView显示的字符串是否为Spinner的选项。关于onData中的参数,通过获取所有类型为String的选项并进行过滤。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
测试结果:
通过onView和onData的操作流程如图:
因此可以获取空间中条目位置进行模拟点击,之前的代码可以改为:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 在AndroidStudio中进行单元测试
- 【Android测试】在AndroidStudio中进行单元测试
- 使用AndroidStudio进行单元测试
- AndroidStudio 进行单元测试
- 在android中进行单元测试
- 使用AndroidStudio进行Android单元测试
- 在Eclipse中使用JUnit进行单元测试
- 在Eclipse中使用JUnit进行单元测试
- 在Eclipse中使用JUnit进行单元测试
- 在SharpDevelop2.2中进行单元测试
- 在Hadoop中使用MRUnit进行单元测试
- 在Android中利用Instrumentation进行单元测试
- 在Android中利用Instrumentation进行单元测试
- 在Eclipse中使用JUnit4进行单元测试
- 在Eclipse中使用JUnit4进行单元测试
- 在Eclipse中使用JUnit4进行单元测试
- 在 Eclipse 中使用 JUnit4 进行单元测试
- 在Eclipse中使用JUnit4进行单元测试
- Recurrent Neural Networks - collections
- NodeJs小试牛刀--聊天室搭建
- 安卓解决6.0以后没有setLatestEventInfo方法的解决方案
- springboot+mybatis实现security
- Excel键盘快捷键大全(四)
- 在AndroidStudio中进行单元测试
- 红帽linux 虚拟机的安装
- iOS开发-本地通知与远程通知
- 使用 Protocol Buffer 3 生成 gRPC Java 代码方法
- 编译错误stray ‘\343’ '\200' in program解决办法
- wincvs2.0—查看文件历史信息图形
- js 通过post方式打开页面 利用html5本地存储获取数据
- Excel键盘快捷键大全(五)
- 定制android的开机启动界面