Lak*_*arg 3 java reflection unit-testing linter
我有一个界面,如下所示
interface Evaluator {
boolean requiresP2();
EvalResult evaluate(Param1 p1, Param2 p2, Param3 p3);
// some more methods
}
Run Code Online (Sandbox Code Playgroud)
该接口由几个类实现.p2evaluate方法的参数由某些人使用,而其他人则不使用.该方法requiresP2基本上返回一个布尔值,告知evaluate方法是否使用p2.
现在,这些问题在上下文中可能看起来有点奇怪,但请相信我,这在我们的用例中是有意义的.另外,重构所有代码需要花费大量时间来消除对requiresP2方法的需求,所以如果我们讨论除了自上而下的代码库重构之外的其他解决方案,我将不胜感激.
问题是方法的返回值requiresP2取决于evaluate方法的实现方式.因此,每个人都必须确保requiresP2在更改方法时更新evaluate方法.
我正在寻找方法,以便这可以由编译器/单元测试/ linters强制执行,而不是将它留给开发人员的内存.
编辑:我仍在探索模拟框架对此问题的适用性.
我认为我可以在单元测试中反映在单元测试中检查它evaluate的主体以检查它是否引用p2然后确保它与requiresP2方法返回的值匹配但似乎无法检查方法体使用反射.
我正在寻找关于如何做到这一点的建议.任何输入都表示赞赏.
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |