Единичное тестирование сопрограммы Kotlin с задержкой

Я пытаюсь выполнить тестирование тестовой программы Kotlin, использующей delay() . Для модульного теста я не забочусь о delay() , это просто замедляет тест. Я бы хотел каким-то образом запустить тест, который фактически не задерживается при вызове функции delay() .

Я попытался запустить сопрограмму coroutine, используя специальный контекст, который делегирует CommonPool:

 class TestUiContext : CoroutineDispatcher(), Delay { suspend override fun delay(time: Long, unit: TimeUnit) { // I'd like it to call this } override fun scheduleResumeAfterDelay(time: Long, unit: TimeUnit, continuation: CancellableContinuation<Unit>) { // but instead it calls this } override fun dispatch(context: CoroutineContext, block: Runnable) { CommonPool.dispatch(context, block) } } 

Я надеялся, что могу просто вернуться из метода delay() моего контекста, но вместо этого он вызывает мой метод scheduleResumeAfterDelay() , и я не знаю, как делегировать его планировщику по умолчанию.

Intereting Posts
Сбор Kotlin + Maven: нет основного атрибута манифеста Избавление от lateinit при конвертации Spring Java8 Junit test в Kotlin андроид, получивший манифест слияния с ошибкой после обновления до новой версии gradle В Kotlin, как я могу обойти конфликты наследуемых объявлений, когда класс enum реализует интерфейс? Классы данных в интерфейсе Как получить статус доставки сообщения с помощью smack? Kotlin: Создайте и передайте истинные массивы Java (для JNA) Рефакторинг моего класса зрителей в Котлине Шаблоны, выходящие в многострочные строки Котлина Каковы правила вывода точки с запятой в Котлин? Именованная инъекция не работает Anko + Content Provider, не обновляет данные об изменении Проверьте, работает ли моя активность в MultiWindowMode или не используется Kotlin Kotlin – Наследовать от Java-класса, который реализует Parcelable Операторы с нулевым значением, допустимые в общем классе?