所以我有一个自动生成的枚举,其中每个枚举包含几个字段,我希望测试枚举中包含的方法的一些逻辑。示例可以是“在此字段中查找具有此值的所有枚举”。但是,枚举可能会更改,更具体地说,可以更改枚举元素的值和数量,但不能更改每个枚举中的字段数。这还包括模拟values()方法的可能性。
现在我担心如果我使用特定值进行测试,如果枚举中不再存在这些值,那么这些测试可能会失败。
所以我的选择是:将元素添加到我可能在测试中使用的现有枚举中,或者使用我可以在测试中使用的新值来模拟整个枚举。
现在我的问题是,什么是好的做法?我读过有关powermock的内容,但它似乎对此有不同的看法。更好的解决方案?我看错了吗?
答案 0 :(得分:0)
可轻松回答的部分:此处不需要模拟框架。
你有一些内容的枚举 - 当你想测试他们的内部时,一个模拟框架没有用。当您的目标是测试这些生成的枚举的某些属性时,mocking
values()
没有任何意义。
换句话说:您的测试用例应该归结为获取值的代码,然后以某种方式asserts()
。最糟糕的情况是,您可能必须使用 reflection ,如:
但最有可能的是,真正的答案完全不同:首先对生成的代码进行单元测试是错误的。而是使用单元测试来验证 代码生成器。
您看到 - 当您的单元测试在生成的枚举中发现问题时?你会做什么......可能会改变你的发电机。