【问题标题】:Mock PackageManager using Robolectric and Mockito使用 Robolectric 和 Mockito 模拟 PackageManager
【发布时间】:2018-09-05 16:32:17
【问题描述】:
我的 sut 类中有一个调用 PackageManager 的方法:
var intent = packageManager.getLaunchIntentForPackage(PACKAGE_NAME)
我想模拟它以便能够对其进行单元测试。
有没有办法使用 Robolectric 或/和 Mockito 来做到这一点?
谢谢
【问题讨论】:
标签:
android
unit-testing
mockito
robolectric
【解决方案1】:
这是使用 AndroidX、Robolectric 和 Mockito 的示例
val context = spy(ApplicationProvider.getApplicationContext())
val packageManager = mock(PackageManager::class.java)
doReturn(packageManager).`when`(context).packageManager
doReturn(mock(Intent::class.java)).`when`(packageManager).getLaunchIntentForPackage(anyString())