我還需要爲了開始一個Dagger2模塊的應用程序參照。經過多次嘗試,並得到同樣的轉換異常錯誤後你得到我做我的應用程序如下
public class App extends Application {
private static AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
if(appComponent==null){
appComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build();
}
}
public static AppComponent getAppComponent() {
return appComponent;
}
public static void setAppComponent(AppComponent component){
appComponent = component;
}
}
而且我Robolectric/PowerMock測試儀內:
@Before
public void before() throws Exception {
App appMocked = PowerMockito.mock(App.class);
App.setAppComponent(DaggerAppComponent.builder().appModule(new AppModule(appMocked)).build());
....
}
然後我的活動簡單地呼籲App.getAppComponent().inject(this);
僅供參考,我試圖不嘲笑應用程序類和使用((App)RuntimeEnvironment.application)
,但沒有奏效。我也嘗試將它繼承,並在Robolectric的應用程序配置中使用它,但最終導致了投射問題。所以我希望這可以有任何幫助。
當然,該制定者不應該投入生產。但這是我能想出這個工作的唯一途徑。
你能看到調試完整的類名嗎? –
是的,我可以,它是RoboApplication,配置中的類型相同。 –