簡體   English   中英

Kotlin 異步回調單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM