gpt4 book ai didi

Android Jetpack WorkManager - 测试 UniquePeriodicWork 执行

转载 作者:行者123 更新时间:2023-12-03 22:21:28 25 4
gpt4 key购买 nike

我正在使用 Android 的 Jetpack WorkManager每天安排一些定期下载任务。我按照说明进行操作,并在工作入队时返回了成功:

val work = PeriodicWorkRequestBuilder<UpdateWorker>(1, TimeUnit.DAYS)
.setConstraints(constraints) // Internet connection, idle and battery not low
.addTag("ANNOUNCEMENTS_WORKER_TAG")
.build()

val workOperation = workManager.enqueueUniquePeriodicWork("UPDATE_WORK_TAG", ExistingPeriodicWorkPolicy.KEEP, work)

workOperation.state.observe(this, Observer { state ->
Timber.d("state: $state") // is successful
})

我现在怎么知道这真的发生了?我如何(单元)测试我的任务的重复执行?

最佳答案

您实际上可以在 WorkManager 上编写仪器测试:

@RunWith(AndroidJUnit4::class)
class UpdateWorkerTest{

private lateinit var context: Context

@Before
fun setUp() {
context = ApplicationProvider.getApplicationContext()
}

@Test
fun testWorkerCall() {
val yourWorker = TestListenableWorkerBuilder<UpdateWorker>(context).build()
runBlocking {
val result = yourWorker.doWork()
assertThat(result, `is`(ListenableWorker.Result.success()))
}
}

}

How do I now know that this is really happening

为此您必须相信 Google 团队,希望您没有 One Plus 设备。

为了您自己的考虑,您可以稍微玩一下您的设备,也许将其关闭然后再打开,然后等待作业运行(在控制台上运行日志)等。

docs 中有更多关于测试的信息

关于Android Jetpack WorkManager - 测试 UniquePeriodicWork 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54903767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com