5、Android Service测试
2016-06-15 17:55
316 查看
如果你在应用中使用了Service,你应该来测试这个Service来确保它正常工作。你可以创建仪表测试来验证Service的行为是否正确;比如,service保存和返回有效的数值并正常的处理数据。
Android Testing Support Library在隔离状态下测试你的Service对象的API。ServiceTestRule类会在你的单元测试类运行之前就启动service,在测试完成之后关闭服务。通过这个规则,你可以保证service会在你的测试方法运行之前建立。
ServiceTestRule类不支持IntentService对象的测试。
为了创建一个service的整合测试,在类开始的地方添加 @RunWith(AndroidJUnit4.class) 注解。你同样需要声明AndroidJUnitRunner类。
接下来通过@Rule注解创建一个ServiceTestRule实例。
接下来的示例显示创建一个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 Studio中有六种依赖
- Android-Universal-Image-Loader 源码解读
- Android 照相 滤镜
- Android下新增api编译问题
- Android IPC机制学习(Android艺术开发探索)
- Android 数据库(SQLite)的导入导出命令
- android 使用GreenDao
- RealtiveLayout(相对布局属性)
- 如何查看Android Studio 内存大小
- Android Studio常用快捷键
- android禁止ScrollView内的控件改变之后自动滚动
- Android 打开文件管理器,并返回选中文件的path
- android 键盘中如何加入一个Rupee货币的符号
- Android Button的Text如果是英文,不管大小写默认都会变成大写,改成原样输出
- android studio 如何调用自定义的framework.jar包在andorid.jar包之前呢
- Android 下陀螺仪、加速度和磁场传感器数据定义
- android项目智慧北京开发完整步骤:第二天
- Android下新增JNI过程中启动新增系统服务(addService)遇安全错误问题
- 查看android项目方法总数的方法(防止超过65535限制)