2016-06-28 21 views
1

我是Dagger 2的新手,我正在使用Dagger 2進行單元測試。我想測試我的演示者並模擬一些數據源(服務器連接,SharedPreferences)。
對於SharedPreferences,我在main文件夾中有SharedPreferencesComponent文件夾,在test/java文件夾中有SharedPreferencesComponentFake。問題是匕首不能生成DaggerSharedPreferencesComponentFake因此我不能注入SharedPreferencesFake而不是SharedPreferences。 我怎樣才能建立這樣的匕首將生成DaggerSharedPreferencesFake類,還是我用匕首2在錯誤的道路如何在test/java文件夾中生成DaggerComponent類?

+0

請嘗試使用搜索功能,因爲這看起來像是一個問題,至少有3次問過,例如, http://stackoverflow.com/questions/36231457/dagger-not-generating-components-for-test-class –

回答

0

爲什麼不使用的Mockito,只是嘲笑SharedPreferencesComponent

Mockito.when(SharedPreferencesComponent.yourMethod(any(String.class))) 
      .thenReturn(yourWanterOutput); 

這將使僞造課程變得不必要,代碼將變得更加清晰。

+0

這是真的,但我想知道的是測試是更好的使用匕首,我已經準備好假的分類 – user1796624

+0

您使用嘲笑和存根以隔離行爲。在這個特殊情況下,你不想測試共享偏好,這就是爲什麼你嘲笑他們的行爲,所以它是恆定的,對測試的最終結果並不關鍵。如果您要測試SharedPreferences的某些實際行爲,則可以使用匕首添加它們。你不能說匕首或嘲諷或殘留更適合測試他們都有不同的目的。 – toshkinl

相關問題