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