[英]Kotlin async callback unit test
我有一堂課:
class SomeClass(private val executor: Executor) {
fun doSomething(id: Int, callback: (String, Int) -> Unit) {
executor.execute {
val intValue = id + 1
val stringValue = "Some string result"
callback(stringValue, intValue)
}
}
}
如何為 doSomething 方法創建單元測試?
我已經研究了這個問題大約 3 天。 我希望可以使用 Mockito 解決這個問題。 幸運的是,今天我找到了ConcurrentUnit 工具來測試異步代碼。
我的解決方案:
val executor = Executors.newSingleThreadExecutor()
lateinit var someClass = SomeClass(executor)
@Test
fun test() {
val waiter = Waiter()
someClass.doSomething(1) { string, int ->
waiter.assertNotNull(string)
waiter.assertEquals(int, 2)
waiter.resume()
}
waiter.await(100, TimeUnit.MILLISECONDS)
}
感謝你的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.