У меня есть простой объект, который предоставляет функцию приостановки для имитации задерживающего сетевого запроса и затем вызывает другой метод из объекта.
class CoroutinesObject {
suspend fun doApiCall() {
delay(1000)
println("Hello from API")
val apiResult = "result #1"
callMe(apiResult)
}
fun callMe(result: String) {
println("[${Thread.currentThread().name}] call me with result: $result")
}
}
Я хотел бы написать простой тест, который должен проверить, что метод callMe
был вызван.
class CoroutinesTest {
@Test
fun doApiCall_callsCallMe() {
val obj = CoroutinesObject()
runBlocking {
obj.doApiCall()
}
coVerify { obj.callMe("result #1") }
}
}
К сожалению, тест не проходит со следующим исключением, и я не уверен, почему это происходит.
io.mockk.MockKException: Missing calls inside verify { ... } block.
У кого-нибудь есть идеи, в чем проблема и как написать тест, который может проверить вызываемый метод?