3

可能重复:
模拟 Java 枚举以添加一个值来测试失败案例

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

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

4

1 回答 1

1

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

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

或者

T[] allEnumValues = enumType.values();

然后把每一个都拿出来放在switch声明中。如果你得到一个异常,你就有问题了。

PS:链接getEnumConstants()方法。

于 2012-06-11T14:17:15.283 回答