我有以下代码:
suspend fun initialize(sdk: Sdk) =
suspendCoroutine<Unit> { continuation ->
try {
sdk.initialize(
callback = { continuation.resume(Unit) },
onFailure = { error -> continuation.resumeWithException(SdkException(error.message)) })
} catch (exception: Exception) {
continuation.resumeWithException(
SdkException("Crash inside SDK", exception)
)
}
}
SDK是一个第三方库。我使用来挂起协程,并在SDK完成初始化后恢复。 一切工作正常,但当我尝试编写如下的单元测试时,会收到以下错误信息:。我使用mockito-kotlin编写以下测试:
@Test
fun `should initialize sdk correctly`() = runBlockingTest {
val sdk = mock<Sdk>()
initializeSdk(sdk)
verify(sdk).initialize(any(), any())
}
我想要做的基本上就是测试resume
和resumeWithException
。