Kotlin Turbain和带有延迟的CoroutineTest抛出TimeoutCancellationException
我试图通过使用和协同测试库来测试一个有延迟的流。有人知道我在这里错过了什么吗Kotlin Turbain和带有延迟的CoroutineTest抛出TimeoutCancellationException,kotlin,testing,junit,kotlin-coroutines,kotlin-coroutines-flow,Kotlin,Testing,Junit,Kotlin Coroutines,Kotlin Coroutines Flow,我试图通过使用和协同测试库来测试一个有延迟的流。有人知道我在这里错过了什么吗 @Test fun test(){ val flow = flow<Int> { emit(1) delay(1000) emit(2) } runBlockingTest { flow.test(Duration.INFINITE) {
@Test
fun test(){
val flow = flow<Int> {
emit(1)
delay(1000)
emit(2)
}
runBlockingTest {
flow.test(Duration.INFINITE) {
expectItem()
expectItem()
expectComplete()
}
}
}
从我对turbine和a的所有了解来看,似乎coroutine测试的时间推进功能会破坏turbine,以便使用turbine进行测试,我建议使用turbine测试中的
runBlocking
或jvmSuspendTest
实现
kotlinx.coroutines.TimeoutCancellationException: Timed out waiting for 9223372036854775807 ms