ArchUnit:验证方法仅调用一个外部方法
创始人
2024-09-12 07:30:30
0

可以使用ArchUnit框架中的API来验证一个方法是否仅调用了一个外部方法。示例如下:

@Test public void verifyMethodOnlyCallsOneOutsideMethod() { JavaClasses classes = new ClassFileImporter().importPackages("com.example"); DescribedPredicate predicate = new DescribedPredicate("calls only one outside method") { @Override public boolean apply(JavaMethod input) { return input.getCallsFromSelf().stream() .filter(call -> !call.getTarget().isConstructor()) .map(call -> call.getTarget().getOwner()) .distinct() .count() == 1; } }; ArchRule rule = methods().that().arePublic().should().satisfy(predicate); rule.check(classes); }

上述代码使用ArchUnit验证方法的调用是否只有一个外部方法。方法调用列表中排除构造函数的方法,将目标方法的所属者进行去重,如果去重之后的数量为1,则表示方法仅调用了一个外部方法。最后,定义ArchRule来应用验证规则。

相关内容

热门资讯

2分钟了解!微扑克透明挂(透视... 1、2分钟了解!微扑克透明挂(透视)辅助透视((2023已更新))(哔哩哔哩);该软件可以轻松地帮助...
十分钟了解!星悦跑胡子有挂吗(... 这是一款非常优秀的星悦跑胡子有挂吗 ia辅助检测软件,能够让你了解到星悦跑胡子有挂吗中牌率当中全部隐...
玩家攻略!全民雀神开挂(辅助挂... 玩家攻略!全民雀神开挂(辅助挂)其实真的有挂(有挂细节)-哔哩哔哩科技教程也叫必备教程,这是一款功能...
六分钟了解!扑克时间软件!的确... 六分钟了解!扑克时间软件!的确真的有挂((2025已更新))(哔哩哔哩);扑克时间软件是一款益智类棋...
八分钟实锤!德州之星app辅助... 八分钟实锤!德州之星app辅助器(透视)透视辅助((2025已更新))(哔哩哔哩)1、许多玩家不知道...
专业讨论!蜀山四川麻将助赢神器... 专业讨论!蜀山四川麻将助赢神器(辅助挂)原来真的有挂(有挂神器)-哔哩哔哩;蜀山四川麻将助赢神器软件...
推荐一款!广东雀神辅助插件io... 推荐一款!广东雀神辅助插件ios免费(辅助挂)原来真的有挂(有挂工具)-哔哩哔哩;最新版2024是一...
玩家必看教程!aapoker透... 1、玩家必看教程!aapoker透明挂多久被封!其实是真的有挂((2024已更新))(哔哩哔哩);详...
9分钟实锤!德州手机辅助软件(... 自定义德州手机系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是想分...
一分钟了解!闽南漳州麻将插件(... 1、一分钟了解!闽南漳州麻将插件(辅助挂)果真真的有挂(果真有挂)-哔哩哔哩;该软件可以轻松地帮助玩...