Android(安卓)Studio单元测试
概述
Android中也提供了一套测试框架,项目中主要用到的是AndroidTestCase类和ActivityInstrumentationTestCase2类,前者用于测试一些需要传入Context的工具类,后者用于测试一些自定义View等与界面相关的。虽然单元测试可以免去运行整个APP,但还是需要运行在模拟器或测试机器上,这里使用Genymotion模拟器。
例子
测试框架中提供了一个方法assertEquals(expected,actual)供调用,它接收两个参数,第一个参数是期望值,第二个参数是实际值,如果期望值与实际值不等,那么它就会抛出异常,表明该测试没通过。
首先,写个测试用例
testSPUtil主要测试的是,数据是否正常存储(SharedPreferences Util),因此刚开始设定了一些值,并通过SPUtil进行存储,最后再将数据取出来,通过assertEquals跟原始数据进行比较,这样就能检测出SPUtil的功能是否正常。
写好用例后,选中方法名右键,run
如果测试通过的话,就出现如图所示,是绿色的标注。那如果测试未通过又是什么样呢?接下来,将测试代码稍作修改。
注意上图红色标注的地方,由于原始数据a=”a”,而获取到的数据a=”-a”,所以此时是不相等的。
运行后,发现有异常信息抛出,并且能定位到异常代码的位置,这时就是测试没通过了。
那如果这个测试类里面有N个测试方法,那要在发布前检查一下这些工具类是否正常,是不是就要每个方法挨个的去运行检测呢?接下来介绍的方法可以解决此问题。
再写一个测试方法testDao
点击Edit Configurations…,打开Run/Debug Configurations界面,点击“+”新建一个Android Tests,并取名为Test,这里Test的范围可选项有All in Module、All in Package、Class、Method,这里选择Class,其它先不考虑,然后选择我们测试Class所在的位置。点击OK保存。最后运行Test。
分别是测试通过和没通过的情形
更多相关文章
- Android(安卓)自定义RecyclerView.OnScrollListener,实现上拉分页
- Android(安卓)NDK学习笔记3-入门案例篇
- launcher修改--获取屏幕缩略(预览)图
- Android(安卓)Studio Error: null, Cannot fit requested classe
- android 退出整个程序
- Android中Log信息的输出方法
- Android(安卓)Asynchronous Http Client-Android异步网络请求客
- Android异步加载图像(含线程池,缓存方法)
- Android(安卓)更新UI的两种方法——handler和runOnUiThread() -