TLDR:我正在开发一个在多个进程中运行的应用程序。出于 UI 测试的目的,我想注入一个虚假的 API 依赖项,以使应用程序在测试下运行独立于网络交互,但是,这在多进程设置中似乎不起作用。
我正在使用这篇文章中描述的方法,所以我实现了一个自定义AndroidJUnitRunner
实例,它使用模拟依赖项(让它成为MockApplication
)而不是具有真正依赖关系的应用程序(让它成为)实例化应用程序RealApplication
。它确实有效,我的应用程序从主进程查询假 API 接口。
然而,我的应用程序使用多个进程,例如,有一个数据处理Service
在其自己的进程中运行,并且仅在startService
从应用程序代码调用时开始。出于某种原因,此过程使用 的实例运行RealApplication
,没有任何模拟依赖项。
有什么办法可以让它工作吗?我尝试深入研究负责应用程序实例化的 Android 代码,但还没有真正发现任何特别有用的东西。
PS 我正在使用 Dagger 2 进行 DI,但这可能并不真正相关。