我有课:
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方法创建单元测试?
答案 0 :(得分:0)
我已经研究了这个问题大约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)
}
感谢您的帮助!