java - 扩展/模拟枚举

标签 java enums junit4

<分区>

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 语句中。如果你得到一个异常,你就有问题了。

附言:LinkgetEnumConstants() 方法。

关于java - 扩展/模拟枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981743/

相关文章:

python - Flask-Migrate 模型中的枚举类有问题

java - 如何使用jmockit模拟私有(private)类?

java - 使用 JUnit 和 Mockito 对 DAO 类进行单元测试

java - 如何参数化 junit 测试套件

java - 如何使用 Tomcat 8.0 从 WSDL 生成 Java 客户端? WSDL 文件有多个 xsd 导入

java - 如何以良好的方式从 Spring DI 迁移到 OSGi DI?

java - hibernate 配置文件

java - 将空列表发送到存储过程

Java 枚举 - 无法在定义之前引用字段

java - 使用枚举值的成员类型声明泛型类时遇到问题