runBlockingTest (теперь заменён на runTest в новых версиях) — это утилита для тестирования из библиотеки kotlinx-coroutines-test. Она предоставляет контролируемое окружение для корутин, специально разработанное для тестирования асинхронного кода.
delay() завершаются сразу по умолчаниюТы можешь вручную продвигать виртуальное время, используя эти функции:
advanceTimeBy(ms) // продвигает время на указанную длительность
advanceUntilIdle() // запускает все ожидающие корутины до завершения
runCurrent() // выполняет только текущие ожидающие задачи
@Test
fun testDelayedOperation() = runTest {
var result = false
launch {
delay(1000)
result = true
}
advanceTimeBy(1000)
assertTrue(result)
}
runBlockingTest устарела — в современных проектах предпочитай runTestВ окружении runBlockingTest, если корутины остаются незавершёнными в конце блока теста, тест автоматически их очистит без ошибки.
Новый — ещё не проверен сообществом
Вы