当前位置: 首页 > 知识库问答 >
问题:

ArchUnit:如何检查类的签名/API中不需要的dependecies?

燕光熙
2023-03-14

我想实现一个ArchUnit规则来检查不需要的依赖关系。这很容易做到,但我只对类的签名/API中的违规行为感兴趣。例如。如果类在私有字段中使用不需要的依赖项或作为私有方法的方法参数,这很好,因为它在外部是不可见的。

我在与流畅的API作斗争。我的出发点是:

noClasses().that()
                .resideInAnyPackage("..domain..", "..application..")
                .should()
                .dependOnClassesThat()
                .resideInAnyPackage(
                    "badpackage1..",
                    "badpackage2..");

我如何改进上述规则,使其只触发类的非私有语言元素?

共有1个答案

闻人吕恭
2023-03-14

您可以提取一个接口并将检查应用到该接口(classes().that().areinterfaces())。IDE提供对接口提取的支持。

 类似资料:
  • 我编写了我的第一个ArchUnit测试: 这个项目是用Maven构建的,所以类在不同的目录中。 将名称以“tests”或其他东西结尾的类分开是不够的,因为有许多类不是测试,而是只存在于测试类路径中。

  • 问题内容: 从版本42开始,Firefox默认情况下拒绝安装未签名的加载项。如何禁用此验证? 问题答案: 只能在Nightly和Developer通道中禁用插件验证。换句话说, 在Beta版本和标准发行版中 是 不可能的 。 转到(在地址栏中输入) 设置到。

  • 我已经提到了为什么在Spring Boot期间找不到bean?和“字段需要找不到类型的bean。”使用mongodb的spring restful API出错 CustomerService只是一个接口,充当CustomerController和CustomerService实施之间的中间人,它实际上在CustomerRepository的帮助下对数据库执行操作。 我正在尝试从MYSQL数据库中检

  • 提供的参数与调用目标的任何签名都不匹配:类型'new()=>foo'和'Bar'的构造签名不兼容:类型'Bar'需要构造签名,但类型'foo'缺少一个(c:Bar)=>Bar Foo的构造函数类型是()=>Foo,我认为Bar就是这么说的。我是不是漏掉了什么?

  • 我在OS X El Capitan上安装了Xcode 8。 我收到这个错误: 签收“目标”需要开发团队,在项目编辑器中选择开发团队。 SDK“iOS 10.0”中的产品类型“Application”需要代码签名

  • 我正在做一个项目,我必须从PDF中提取文本数据。 我能够从PDF中提取文本,但提取的文本有时包含我想从中剥离的行。 这是不需要的线条的例子- 国际标准书号0-7225-3293-8。第一部分第二部分结语 第1/94页 这里有一个很好的例子(我想保留) 当男孩带着他的牛群来到一座废弃的教堂时,夜幕已经降临。 我想多睡一会儿,他想。那天晚上他做了和一周前一样的梦 不同的PDF可以给出不同的无用行。 我