如何使用多个延迟函数对协程进行单元测试

问题描述

我跟着 https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-test/ ,看起来 runBlockingTest 正在跳过延迟协程,并且我无法从主函数延迟后到达代码。是否有一个很好的方法来单元测试/推进计时器并相应地断言标志?

你能帮我对我的主要功能进行单元测试吗

// my main function is having multiple delay coroutines to set a flag true/false
fun delayFunction() {
    launch { // coroutine scope
        isFlag = false
        delay(1000)
        isFlag = true
        delay(1000)
        isFlag = false
    }
}

// I tried unit testing something like this 
@Test
fun `test delayFunction`() {
    runBlockingTest {
        delayFunction()
        advanceTimeBy(1001)
        assertthat(isFlag).isTrue()
        advanceTimeBy(1001)
        assertthat(isFlag).isFalse()
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)