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 1076 [SCOI2008]奖励关
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1076题解: 期望dp. (模糊的题意,2333) 题中的:"现在决定不吃的宝物以后 ...
- NOIP2016 玩脱记
NOIP前: NOIP前停课了一个多月,这一个多月里浪得飞起,内心十分紧张,然后就不知不觉就到NOIP了. Day 0: 上火车前ryc给我们出了道题"一个数列,只有两个数出现了奇数次,找出 ...
- 阿里技术一面,Java研发岗
之前过了个简单的简历面,过了几天后没打来以为凉了,然后昨晚又接到了电话,括号内容是回答说的,理解有限,不一定都对,欢迎纠正-加油每一个牛友们! 阿里一面: 1.学过哪些技术知识呢? 2.说说接口和抽象 ...
- 自定义alert窗口样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mongodb数据库备份迁移 windows -> linux
mongodb数据库备份迁移 windows -> linux cd 到本机mongodb的安装目录 如: C:\Program Files\MongoDB\Server\3.4\bin 可以发 ...
- 罗列Linux发行版的基础目录名称,命令法则和功能
罗列Linux发行版的基础目录名称命名法则及功用规定 目录描述 /主层次 的根,也是整个文件系统层次结构的根目录 /bin存放在单用户模式可用的必要命令二进制文件,所有用户都可用,如 cat.ls.c ...
- 1-学习GPRS_Air202(Air202开发板介绍)
记得自己第一次实现远程通信是在学校里用SIM900A实现的,随着WIFI模块的普及自己就开始用WIFI模块了,当然WIFI模块已经用的很... WIFI模块要想实现远程控制必须连接路由器,其实在做王哥 ...
- AIX 命令
1,[ctrl]+h 删除命令 2, set -o emacs后: [ctrl]+p 看上条命令 [ctrl]+n 看下条命令 两次[esc] 自动补全 3, set -o vi 后,可以按照vi编辑 ...
- MongoDB 排序
MongoDB sort()方法 在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 ...
- 分布式一致性协议Raft原理与实例
分布式一致性协议Raft原理与实例 1.Raft协议 1.1 Raft简介 Raft是由Stanford提出的一种更易理解的一致性算法,意在取代目前广为使用的Paxos算法.目前,在各种主流语言中都有 ...