android - 使用 Robolectric 和 Mockito 模拟 PackageManager
问题描述
我的 sut 类中有一个调用 PackageManager 的方法:
var intent = packageManager.getLaunchIntentForPackage(PACKAGE_NAME)
我想模拟它以便能够对其进行单元测试。有没有办法使用 Robolectric 或/和 Mockito 来做到这一点?谢谢
解决方案
这是 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())
推荐阅读
- class - 如果我尝试在 Python3.7 的类中修改函数中的当前对象,那么为什么这些更改没有反映在函数调用之外?
- sql - 使用 Join 消除数据
- webstorm - WebStorm 实际上没有保存文件?
- python - 如何将字符串转换为货币价值?
- git - 我被 git bash 致命错误报告卡住了
- r - ggplot2 中的图树
- symfony - 减少 Symfony + phpoffice/phpspreadsheet 的 Docker 镜像大小?
- batch-file - 有没有办法创建一个按顺序创建文件夹的批处理文件?
- c# - 如何直接从 Razor View 调用 .NET CORE MVC 中的 POST 方法?
- c++ - 如何阻止 std::make_shared 的使用