5、Android Service测试
如果你在应用中使用了Service,你应该来测试这个Service来确保它正常工作。你可以创建仪表测试来验证Service的行为是否正确;比如,service保存和返回有效的数值并正常的处理数据。
Android Testing Support Library在隔离状态下测试你的Service对象的API。ServiceTestRule类会在你的单元测试类运行之前就启动service,在测试完成之后关闭服务。通过这个规则,你可以保证service会在你的测试方法运行之前建立。
ServiceTestRule类不支持IntentService对象的测试。
配置测试环境
查看第一篇
创建Service的整合测试
你的整合测试需要按照Junit 4测试类的规则来编写。
为了创建一个service的整合测试,在类开始的地方添加 @RunWith(AndroidJUnit4.class) 注解。你同样需要声明AndroidJUnitRunner类。
接下来通过@Rule注解创建一个ServiceTestRule实例。
@Rule
public final ServiceTestRule mServiceRule = new ServiceTestRule();
接下来的示例显示创建一个service的整合测试类。
@Test
public void testWithBoundService() throws TimeoutException {
// 创建Service Intent
Intent serviceIntent =
new Intent(InstrumentationRegistry.getTargetContext(),
LocalService.class);
// Service通过Intent传递数据
serviceIntent.putExtra(LocalService.SEED_KEY, 42L);
// 绑定service
IBinder binder = mServiceRule.bindService(serviceIntent);
LocalService service =
((LocalService.LocalBinder) binder).getService();
// 验证Service是否正常工作
assertThat(service.getRandomInt(), is(any(Integer.class)));
}
本文作者:宋志辉
个人微博:点击进入
5、Android Service测试的更多相关文章
- Android开源测试框架学习
近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...
- Android Service完全解析,关于服务你所需知道的一切(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A ...
- Android Service(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A ...
- java.lang.RuntimeException: Unable to get provider cn.jpush.android.service.DataProvider
转自:https://blog.csdn.net/u014306335/article/details/80355169 Android Studio 3.1.2 报错: java.lang.Runt ...
- 【Android】详解Android Service
目录结构: contents structure [+] Service简单概述 Service在清单文件中的声明 Service启动服务 Service绑定服务 扩展Binder类 使用Messen ...
- Android——Service装取数据
在Service里面装数据,从Activity里面用serviceConnection取数据 xml <?xml version="1.0" encoding="u ...
- Android——Service
xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- [转]Android开源测试框架学习
近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...
- Android Service完全解析,关于服务你所需知道的一切(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A ...
随机推荐
- ●BZOJ 3926 [Zjoi2015]诸神眷顾的幻想乡
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3926题解&&代码: 后缀自动机,Trie树 如果以每个叶子为根,所有的子串一 ...
- ●BZOJ 4556 [Tjoi2016&Heoi2016]字符串
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4556 题解: 巨恶心...但是题很好呀,可以练习好几个比较麻烦的算法~ 1).预处理 首先用 ...
- hdu 5591 BestCoder Round #65(博弈)
题意: 问题描述 ZYBZYB在远足中,和同学们玩了一个“数字炸弹”游戏:由主持人心里想一个在[1,N][1,N]中的数字XX,然后玩家们轮流猜一个数字,如果一个玩家恰好猜中XX则算负,否则主持人将告 ...
- bzoj2811[Apio2012]Guard 贪心
2811: [Apio2012]Guard Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 905 Solved: 387[Submit][Statu ...
- 分区工具PQ
http://www.disktool.cn/jiaocheng/resize-partition.html
- SqlServer查询优化方法
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 文章来源http://bbs.csdn.net/topics/250004467 1.没有索引或者没有用到索引(这是查询慢最常 ...
- 如何导入python中的模块
作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包.但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活.在本文中,我们将探讨以下 ...
- iOS 定位简单使用
一.配置 导入库CoreLocation. 2.info.plist配置key NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDes ...
- js黑魔法
清空一个数组 一直以来,清空一个数组都是var i = [1,2,3]; i = [];,习惯成自然,被自己坑了. 举个例子 var i = [1,2,3]; var obj = {val: i}; ...
- React .js框架的环境搭建
React学习笔记(一)- 环境搭建 最近在学习react相关的知识,刚刚起步,一路遇坑不断.自己做个笔记,方便日后总结,也供相同趣味的小伙伴一起交流探讨. 学习时主要参考官网的教程:https: ...