<分区>
Possible Duplicate:
Mocking Java enum to add a value to test fail case
我有一个适用于枚举的 switch 语句。开关的“默认”情况是抛出运行时异常。像这样编码是为了捕获有人向枚举添加值但忘记更新 switch 语句的情况。
我想测试这个执行路径,但我正在努力寻找一种方法,而不是将未使用的枚举值放入我的实时代码中。这是对枚举的误用,还是有一种公认的编写此测试的方法?
<分区>
Possible Duplicate:
Mocking Java enum to add a value to test fail case
我有一个适用于枚举的 switch 语句。开关的“默认”情况是抛出运行时异常。像这样编码是为了捕获有人向枚举添加值但忘记更新 switch 语句的情况。
我想测试这个执行路径,但我正在努力寻找一种方法,而不是将未使用的枚举值放入我的实时代码中。这是对枚举的误用,还是有一种公认的编写此测试的方法?
最佳答案
我想你可以做的是做一个测试用例来测试它,你基本上可以得到枚举的所有值,比如
T[] allEnumValues = enumValue.getDeclaringClass().getEnumConstants();
或
T[] allEnumValues = enumType.values();
然后把每一个都放在switch
语句中。如果你得到一个异常,你就有问题了。
附言:Link到 getEnumConstants()
方法。
关于java - 扩展/模拟枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981743/