使用Robolectric和Mockito模拟PackageManager

时间:2018-09-05 16:32:18

标签: android unit-testing mockito robolectric

我的sut类中有一个调用PackageManager的方法:

var intent = packageManager.getLaunchIntentForPackage(PACKAGE_NAME)

我想对此进行模拟以便能够对其进行单元测试。 有没有办法使用Robolectric或/和Mockito做到这一点? 谢谢

1 个答案:

答案 0 :(得分:0)

以下是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())