2013-06-11 24 views
0

鑑於以下枚舉:增值枚舉測試交換機的默認情況下

public enum SupportedLoanProcessor { 
    PRE_AUTHORIZED, 
    ACCURED_INTEREST 
} 

和交換機上的值工作,如果類型SupportedLoanProessor

switch(processorType){ 
     case SupportedLoanProcessor.PRE_AUTHORIZED: 
     result = processPreAuthorized allLendingsWithALoan, date 
     break 
     case SupportedLoanProcessor.ACCURED_INTEREST: 
     result = processAccuredInterest allLendingsWithALoan, date 
     break 
     default: 
     throw new IllegalArgumentException("Unknow loan processor: $processorType") 
    } 

怎麼可能做測試的默認案件。我正在使用groovy和junit。 我想在運行時修改枚舉是可能的。但我不知道如何。

+0

[這](http://stackoverflow.com/a/44099072/2974624)應該有助於解決這個問題 – Damian

回答

1

默認情況下不可能執行,因爲枚舉沒有其他值而不是交換機覆蓋的值。

如果您試圖爲將來的應用程序進行驗證,那麼當有更多可能的值時,我的方法通常是向枚舉中添加一個None。

public enum SupportedLoanProcessor { 
    None = 0, 
    PRE_AUTHORIZED, 
    ACCURED_INTEREST 
} 
+0

並且添加了只測試這個價值?如何獨立測試和應用程序代碼? –

+0

不,我將其永久添加到枚舉中。當使用零時,這也具有作爲.NET中枚舉的默認值的屬性。我不知道它在Java中如何工作。 –

+0

我覺得這不是很乾淨的事。您混合使用測試和業務邏輯測試。 –