我有一个适用于枚举的switch语句。交换机的“默认”情况是抛出运行时异常。它编码为这样可以捕获某人为枚举添加值但忘记更新switch语句的情况。
我想测试这个执行路径,但我很难找到一种方法,而不会将未使用的枚举值放入我的实时代码中。这是对枚举的误用,还是有一种可接受的方式来编写这个测试?
答案 0 :(得分:1)
我认为你可以做的测试是有一个测试用例,你基本上得到你的枚举的所有值
T[] allEnumValues = enumValue.getDeclaringClass().getEnumConstants();
或
T[] allEnumValues = enumType.values();
然后取出每个并将其放入switch
语句中。如果您遇到异常,则会出现问题。
PS:Link getEnumConstants()
方法。