我在將我的Android應用從Dagger
遷移到Dagger2
時遇到問題。與匕首動態綁定2
我在測試過程中使用Dagger在不同的層注入模擬(單元,功能設備和其間的一切)。
E.g.我有一個NetworkingModule
,它提供了HttpTransport
和ServerConnector
。對於某些測試,我只是嘲笑http層,對於其他人我嘲笑ServerConnector
和其他測試用途發佈類來測試與真實測試服務器的集成。
這些測試可以在所有構建版本上運行(調試,發佈,...)。
我只發現了Dagger2
的描述,它爲每個構建類型設置了一個靜態注入配置 - 即綁定實際類的釋放組件和綁定一組模擬的調試組件。
我需要找到一種方法讓測試用例在應用程序啓動階段替換模塊。
我該如何做到這一點?在我的想法中,當應用程序觸發構建其必須使用組件的圖時,我總是陷入停滯狀態,這是一個組件的實現,它具有靜態註釋其模塊的特定接口。
問一個問題:是否可以在提供相同注射的相同構建中編譯多個模塊?我將如何在運行時注入正確的模塊?
有人可以請我爲我的例子NetworkingModule
的解決方案。
BTW:我大量使用Espresso
,Robolectric
和Mockito
。
Thx。
您能否提供一個代碼示例,您是如何做到的? – confile