我想使用Instrumentation测试用例,以便我可以使用getSystemService(JobScheduler.class).schedule(job)测试作业调度的完整流程,以及在我的JobService和onStartJob / onStopJob调用中调用onCreate .
我的JobService有时会启动AsyncTasks(从而在onStartJob中返回true),有时它会为已经完成的工作返回false.我有各种各样的jobFinished调用(mJobParameters,needsReschedule),我想确保它们也能正常工作.
我一直在努力让仪表测试工作在过去几天,但我能够提出的最好的是一项测试,安排工作,但工作永远不会离开待定状态.我已经尝试了各种等待/后台线程配置,看看是否需要释放UI线程但是没有取得任何成功.
谷歌似乎没有表现出任何正确测试这个组件的完整流程的东西,这是令人惊讶的,因为它们似乎迫使每个人在更新的API发布时使用它.
我已经看过What tools are available to test JobScheduler?但是用adb自动化很困难(我对使用它的答案不感兴趣).
有没有人知道使用Instrumentation测试使用JobScheduler端到端测试JobService的方法?
解决方法
看来他们提供的设备测试示例的部分设置是将正在运行的应用程序设置为活动状态,并且主要通过cmd jobscheduler< command>来了解作业状态.从测试中调用shell
try { SystemUtil.runShellCommand(getInstrumentation(),"cmd activity set-inactive " + mContext.getPackageName() + " false"); } catch (IOException e) { Log.w("ConstraintTest","Failed setting inactive false",e); }
见the provided InstrumentationTestCase subclass they posted in the bug notes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。