如何使用Mockito为测试目的模拟枚举?鉴于这种样品枚举:在Java中使用Mockito模拟枚举
public enum TestEnum {
YES,
NO
}
,这一次使用枚举的方法:
public static boolean WorkTheEnum(TestEnum theEnum) {
switch (theEnum) {
case YES:
return true;
case NO:
return false;
default:
// throws an exception here
}
}
我怎么能嘲笑枚举达到开关环路的默认分支? This answer表示Mockito不能嘲笑枚举,但答案也在一年多以前提供。我可以在同一时间嘲笑枚举,还是让我让分支保持未经测试?其他Mocking框架不能使用。
有这样的hacky方法:[黑客入侵和修改“最终静态”字段](http://www.javaspecialists.eu/archive/Issue161.html) – Jesper
枚举就像静态类,因此你可以'用mookito把它们剔除。在你的示例中,默认是无法访问的,所以你不能测试它。 –
为什么要测试不可达路径? – Manu