扩展/模拟枚举

时间:2012-06-11 14:08:10

标签: java enums junit4

  

可能重复:
  Mocking Java enum to add a value to test fail case

我有一个适用于枚举的switch语句。交换机的“默认”情况是抛出运行时异常。它编码为这样可以捕获某人为枚举添加值但忘记更新switch语句的情况。

我想测试这个执行路径,但我很难找到一种方法,而不会将未使用的枚举值放入我的实时代码中。这是对枚举的误用,还是有一种可接受的方式来编写这个测试?

1 个答案:

答案 0 :(得分:1)

我认为你可以做的测试是有一个测试用例,你基本上得到你的枚举的所有值

T[] allEnumValues = enumValue.getDeclaringClass().getEnumConstants();

T[] allEnumValues = enumType.values();

然后取出每个并将其放入switch语句中。如果您遇到异常,则会出现问题。

PS:Link getEnumConstants()方法。