2015-04-01 18 views
0

有什麼方法可以改變在Dagger中使用不同客戶端的Retrofit模塊注入儀器測試的RestAdapter的方式嗎?如何在測試時注入不同的客戶端進行改造?

@Provides 
@Singleton 
public APIService getAPIService() { 
    RestAdapter restAdapter = new RestAdapter.Builder() 
      .setEndpoint(BuildConfig.HOST) 
      .build(); 
    return restAdapter.create(APIService.class); 
} 

但是,我想在執行儀器測試時設置一個新的客戶端。

@Provides 
@Singleton 
public APIService getAPIService() { 
    RestAdapter restAdapter = new RestAdapter.Builder() 
      .setEndpoint(BuildConfig.HOST) 
      .setClient(new MockClient()) 
      .build(); 
    return restAdapter.create(APIService.class); 
} 

有沒有辦法做到這一點?

謝謝

回答

0

我在我的項目中做到了這一點。你可以找到樣本here。應用程序代碼是用Kotlin編寫的,並使用Dagger 2.主分支包含Java代碼和Dagger 1實現。我希望這將有助於:)

+0

鏈接已損壞。 – Shubham 2015-12-21 10:57:11

+0

鏈接固定但答案已棄用。您可以使用等級風味來實現它。 – 2015-12-31 11:14:47