2013-06-11 53 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

我觉得这不是很干净的事。您混合使用测试和业务逻辑测试。 –