我寫這與類似的方法實現了暴露接口的類(JUnit的)單元測試:單元測試綜合服務方法
public Set<Setting> getUserSettings();
public Set<Setting> getOrganizationSettings();
public Set<Setting> getDefaults();
public Set<Setting> getAllSettings();
從特定層獲得設置的方法做IO從不同的地方檢索他們的結果。 getAllSettings()返回所有級別的所有設置的單個集合,其中「最高」級別具有首選項(即,如果設置存在於默認級別和用戶級別中,則將使用用戶級別的設置。
我已經寫了單元測試getUserSettings(),getOrganizationSettings()的getDefaults(),嘲諷了與嘲笑對象的IO操作。
實現了getAllSettings()看起來像
public Set<Setting> getAllSettings(){
Set<Setting> defaults = getUserSettings();
Set<Setting> custom = getOrganizationSettings();
Set<Setting> undefined = getDefaults();
//perform some sorting and business logic
//return fully sorted set
}
我的問題在於如何單元測試getAllSettings()方法。我使用mocks(使用easymock/powerm ock)用戶/組織/ defaultSettings方法使用的所有下游資源調用?似乎有一個更清潔/更好/更簡單的方法來做到這一點。
我什至沒有想到使用它。這正是我所期待的。 – BuffaloBuffalo 2011-03-24 17:28:04