如何在kotlin单元测试中模拟Handler(Looper)

问题描述 投票:0回答:1
 Handler(Looper.getMainLooper()).postDelayed(
            {
                println("inside the looper")
                val firmwareVersion = managerService.getDeviceFirmwareVersion();
                fwStatus = if (!firmwareVersion.isNullOrEmpty()) "$versionValue $firmwareVersion" else "--"
                UpdateManagerInstance.disconnectFromUpdateService()
            }, 2000)

有没有办法在 kotlin mockito 单元测试中解决这个代码块?

android kotlin unit-testing handler postdelayed
1个回答
0
投票

示例用例

 val handler = mock(Handler::class.java)
`when`(handler.post(any())).thenAnswer { invocation ->
                invocation.getArgument(0, Runnable::class.java).run()
                true
 }
© www.soinside.com 2019 - 2024. All rights reserved.