我正在尝试进行单元测试,我意识到 delay() 没有在 runTest{} 中被跳过。经过一些测试,我意识到这是因为流量。但我不知道这种行为。这里有一个重现的例子。
@Test
fun `Trying to skip delay`() = runTest {
runBlocking {
var i = 0
flow<Unit> {
if(i < 10) {
i++
println("Emit d'exception $i")
throw Exception()
}
}.retry {
delay(2000)
true
}.collect {}
}
}
如何让这段代码按照我的预期工作?这意味着他的执行时间应该是几秒左右(不是 10*2000)
致以诚挚的问候