我有這種組件加模塊的設置,例如FooComponent
和FooModule,它提供了一個簡單的單例,它需要在其中一個測試變體中替換。因此,在該變體中,我改爲FooTestComponent
,它繼承FooComponent
,但它的@Modules
註釋指向另一個模塊,而不是FooTestModule
。到目前爲止FooModule
只提供一個依賴項,所以沒有問題。Dagger2 - 注入替換模塊而不復制代碼
然而,由於需要不依賴於測試來代替被添加到FooModule
,我看到自己被迫複製所有的方法,爲他們提供在FooTestModule
太多,因爲它們不能被提取到一個抽象父模塊FooModule
和FooTestModule
繼承自。有什麼辦法避免這種重複?
如果這是一個Android項目,我會建議讓單獨的組件與一些代碼重複,以獲得更大的靈活性。 – benji
請參閱http://stackoverflow.com/a/41414824/2065363 –