2015-04-02 51 views
0

我有一個提供Dagger模塊的Modules類。當運行我的單元測試和androidTests時,我想重寫這個類,類似於你可以重寫不同的構建類型或類型的類。Gradle:從測試源集中的主sourceSet覆蓋類

這可能嗎?目前,當我嘗試在我的test sourceSet中擁有與main sourceSet中對應的類具有相同限定名稱的類時,出現Duplicate class file found錯誤。

最終,我想在單元測試期間提供一些不同的數據庫。

+1

這是什麼依賴注入;) – 2015-04-02 20:38:08

+0

@OliverCharlesworth是的 - 這就是爲什麼我使用它。 – ZakTaccardi 2015-04-02 20:43:42

+0

好的,那麼你的測試類與你的真實課程有相同的(合格的)名稱是唯一的問題嗎?當然,這可以通過命名TestDatabase(或其他)來簡單地避開。 – 2015-04-02 20:45:26

回答

1

做到這一點的最簡單方法不是重寫類(你已經注意到它不起作用)。相反,你可以定義一個通用的接口,然後有兩個不同的實現。一個用於main,另一個用於test

這樣,測試可以提供一個Test<Something>對象,而應用程序代碼提供一個<Something>,並且您正在測試的類將不知道其差異。