首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用仪器测试测试我的JobService?

如何使用仪器测试测试我的JobService?
EN

Stack Overflow用户
提问于 2017-06-08 19:42:59
回答 1查看 2K关注 0票数 11

我有一个正确实现的JobService,在简单的情况下可以正常工作,但是我希望确保在所有条件下都对服务进行适当的测试。

我想使用一个测试用例,这样我就可以测试从使用getSystemService(JobScheduler.class).schedule(job)调度作业到在我的JobServiceonStartJob/onStopJob调用中调用onCreate的全部流程。

我的JobService有时会启动AsyncTask(从而在onStartJob中返回true ),而其他时候它会为已经完成的工作返回false。我给jobFinished(mJobParameters, needsReschedule)打了很多电话,我想确保它们也能正常工作。

在过去的几天里,我一直在尝试让仪器测试正常工作,但是我所能想到的最好的测试就是安排任务,但是任务永远不会离开待定状态。我尝试过不同的等待/后台线程配置,以查看释放UI线程是否是必需的,但没有取得任何成功。

谷歌似乎也没有出现任何东西来正确测试这个组件的全部流程,这是令人惊讶的,因为他们似乎在迫使每个人在发布新的API时使用它。

我见过有哪些工具可以用来测试JobScheduler?,但是很难用adb实现自动化(我对使用它的答案不感兴趣)。

是否有人知道如何使用仪器测试对JobService进行端到端测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 14:46:17

由于Google非常响应我的问题,在这里回答:https://issuetracker.google.com/issues/62543492,它现在是清楚如何做它!

他们提供的工具测试示例的部分设置似乎是将运行中的应用程序设置为active,并且主要通过测试中对shell的cmd jobscheduler <command>调用来了解作业状态。

代码语言:javascript
复制
    try {
        SystemUtil.runShellCommand(getInstrumentation(), "cmd activity set-inactive "
                + mContext.getPackageName() + " false");
    } catch (IOException e) {
        Log.w("ConstraintTest", "Failed setting inactive false", e);
    }

请参阅他们在bug说明中提供的InstrumentationTestCase子类

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44444310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档