【问题标题】:Update enum using Reflection in java在java中使用反射更新枚举
【发布时间】:2018-01-04 05:59:12
【问题描述】:

我已经声明了一个枚举

enum Animal {
    Cat("Tom"), Rat("Jerry");
}

我必须在值上添加测试用例。有没有办法使用枚举中的反射在旅途中添加另一个动物类型,为此我必须使测试用例失败。

附:这些值与另一个在服务器上并行运行的模块有一些相似之处,因此将来如果其他一些编码器更新枚举,以确保他也必须在另一个模块中进行这些更改。 所以,我正在围绕它添加一个功能测试用例。

【问题讨论】:

  • 为测试用例创建这样的测试用例是没有意义的。即使您可以证明测试用例在被黑客入侵的enum 上会失败,也不能证明它会在不正确扩展的enum 上失败。
  • Hey Pankaj,如果它解决了您的问题,请将我的答案标记为答案
  • @RobbyCornelissen 谢谢,您的解决方案对我有用。

标签: java reflection enums


【解决方案1】:

枚举中的所有值都应该预先知道。在这种情况下,您还可以编写一个测试用例,从该枚举中“获取”所有值并断言大小为 2 ,值符合预期等。另外,在两个模块中有重复的枚举应该保留在同步似乎是一种设计/架构的味道。可能两个模块都应该从共享数据库或共享缓存中获取这些值以适当地缓解这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-12
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    相关资源
    最近更新 更多