данных
suspend fun getData() = suspendCoroutine<List<Data>> { continuation ->
scope.launch(Dispatchers.IO) {
manager.getData(
token, REQUEST_TIMEOUT, PAGING,
{
continuation.resume(it)
},
{
continuation.resumeWithException(Exception())
}
)
}
}
После этого в тесте запускаю функцию корутину и хочу запустить лямбду onSuccess, чтобы продолжить выполнение кода
private val manager = mock<Manager>()
@Test
fun test() = runBlockingTest {
When calling manager.getData(eq(token), any(), any(), any(), any()) itAnswers {
val callBack = it.arguments[3] as Manager.GetDataListener
callBack.onSuccess(TEST_DATA)
}
val res = getData()
res shouldBeEqualTo TEST_DATA
}
однако в тесте лямбда не запускается и корутина виснет
Есть ли идеи, что я делаю неправильно?
а зачем внутри suspendCoroutine еще вызывать launch ?
Прошу прощения, раньше еще вызывал в корутине getToken но потом вынес. сейчас попробую перезавустить тест
Обсуждают сегодня