gpt4 book ai didi

android - 如何比 MIN_PERIODIC_INTERVAL_MILLIS 更快地测试 PeriodicWorkRequest?

转载 作者:太空狗 更新时间:2023-10-29 14:38:30 24 4
gpt4 key购买 nike

为了测试循环工作,我需要等待整整 15 分钟(reference)来测试循环,这确实效率不高。是否有更好更快的方法让开发人员更快地对此进行测试?

最佳答案

您可以在 MIN_PERIODIC_INTERVAL_MILLIS(即 15 分钟)之前测试 PeriodicWorkRequest。

为此,您需要 androidx.work.testing 中的 WorkManagerTestInitHelper

首先在您的应用程序或模块的 build.gradle 文件中添加以下依赖项:

//Current stable release is 2.3.4
androidTestImplementation "androidx.work:work-testing:2.3.4

接下来,您需要使用 TestDriver 提供的 setPeriodDelayMet 方法,它可用于指示间隔已完成并在 MIN_PERIODIC_INTERVAL_MILLIS(15 分钟)之前执行 PeriodicWorkRequest。示例代码:

@Test
public void testPeriodicWork(Context context) throws Exception {
// Setup input data
Data input = new Data.Builder().put(KEY_1, 1).put(KEY_2, 2).build();

// Create periodic work request
PeriodicWorkRequest request = new PeriodicWorkRequest.Builder(MyWorker.class, 15, TimeUnit.MINUTES)
.setInputData(input)
.build();
// Enqueue periodic request
WorkManager.getInstance(context).enqueueUniquePeriodicWork(WORKER_TAG, ExistingPeriodicWorkPolicy.REPLACE, request);

// Initialize testDriver
TestDriver testDriver = WorkManagerTestInitHelper.getTestDriver();

// Tells the testing framework the period delay is met, this will execute your code in doWork() in MyWorker class
testDriver.setPeriodDelayMet(request.getId());

}

您可以在 https://developer.android.com/topic/libraries/architecture/workmanager/how-to/integration-testing#periodic-work 找到有关测试 PeriodicWorkRequest 的更多信息

https://developer.android.com/reference/androidx/work/testing/WorkManagerTestInitHelper 了解有关测试 WorkManager 的更多信息和 https://developer.android.com/reference/androidx/work/testing/TestDriver

关于android - 如何比 MIN_PERIODIC_INTERVAL_MILLIS 更快地测试 PeriodicWorkRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52039556/

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