TLDR: Я разрабатываю приложение, которое выполняется в нескольких процессах. Для целей тестирования пользовательского интерфейса я хочу ввести поддельную зависимость API, чтобы приложение, работающее под тестированием, не зависело от сетевых взаимодействий, однако это не работает в настройке многопроцессорности.Зависимости от инъекций в многопроцессорных приложениях Android
Я использую подход, описанный в this post, так что я реализовал пользовательский AndroidJUnitRunner
, который создает экземпляр приложения с притворными зависимостями (пусть это будет MockApplication
) вместо одного с реальными зависимостями (пусть это будет RealApplication
). Он работает, и мое приложение запрашивает поддельный интерфейс API из основного процесса.
Мое приложение, однако, использует несколько процессов, например. существует обработка данных Service
, которая запускается в своем собственном процессе и которая начинается только с вызова startService
из кода приложения. По какой-то причине этот процесс выполняется с экземпляром RealApplication
без каких-либо макетных зависимостей.
Есть ли способ заставить это работать? Я пробовал копаться в коде Android, ответственном за создание приложения, но пока что не нашел ничего полезного.
P.S. Я использую Dagger 2 для DI, но это, вероятно, не очень актуально.