,如果我創造,我想在一個特定的功能,使用匕首可以說,子組件:匕首2的Android子組件覆蓋
TransactionComponent plusTransactionSubcomponent(TransactionModule transactionModule);
:
@TransactionsActivityScope
@Subcomponent(modules = {TransactionsModule.class})
public interface TransactionsComponent {
TransactionsManager provideTransactionsManager();
void inject(TransactionsFragment transactionsFragment);
void inject(TransactionsFilterActivity transactionsFilterActivity);
}
我有一個加號添加它的主要的應用程序組件
,並在該片段中使用它: 公共類TransactionsFragment { .. .. ..
@Override
protected void setupGraph(DaggerAppGraph graph) {
graph.plusTransactionsSubcomponent(new TransactionModule()).inject(this);
}
}
在Espresso測試中重寫此子組件的正確方法是什麼? 對於組件和組件的依賴關係,您只需編寫一個擴展「原始」組件並在其中打開MockModules的TestAppComponent即可,但如何使用Subcomponents乾淨地完成此操作?
我也看了一下Dagger AndroidInjector.inject(this);組件和活動組件的解決方案是相似的,但我認爲無法爲子組件和碎片乾淨地完成它。 我認爲編寫方法並重寫Activity/Fragments組件設置器並在其中進行重寫會是不理想的。 我錯過了什麼嗎?
是的,這是一個選項,但我認爲它是次優的我寧願有測試代碼只在androidTest沙發我已經設法做到這一點重寫測試活動的組件,但對於子組件我仍然沒有任何干淨的代碼靈感 – originx
如果您找到更簡單的解決方案,請告訴我。上述方法的主要/唯一缺點是文件夾的管理。 – Frank