zoukankan      html  css  js  c++  java
  • 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)));
    }

    本文作者:宋志辉
    个人微博:点击进入

  • 相关阅读:
    自定义Android Studio方法注释模板
    shell 大型脚本工具开发实战
    Shell 脚本操作数据库实战
    awk 常用选项及数组的用法和模拟生产环境数据统计
    awk 条件及循环语句和字符串函数
    awk 表达式
    awk 概述及常用方法总结
    sed 追加文件内容
    sed 修改文件内容
    sed 删除文本中的内容
  • 原文地址:https://www.cnblogs.com/hainange/p/6153449.html
Copyright © 2011-2022 走看看