问题标签 [archunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
475 浏览

junit5 - ArchUnit 测试实际的分层架构

目前在我们的项目中,我们已经通过以下方式实现了分层架构,其中控制器、服务、存储库针对每个功能放置在同一个包中,例如:

  • 特点1:
    • Feature1控制器
    • Feature1服务
    • Feature1存储库
  • 特点2:
    • Feature2控制器
    • Feature2Service
    • Feature2存储库

我发现了以下拱单元测试示例,其中此类类放置在专用包中https://github.com/TNG/ArchUnit-Examples/blob/master/example-junit5/src/test/java/com/tngtech/ archunit/exampletest/junit5/LayeredArchitectureTest.java

请建议当所有层都在一个包中时是否有可能测试分层架构

0 投票
1 回答
162 浏览

java - 任何服务类都不应使用 Java.util.date

嗨,我想为服务类编写一个 ArchUnit 测试,这样字段不允许是日期,到目前为止,我可以通过执行以下操作来完成接近我需要的事情:

但是,即使类包含 Date 字段,为 Fields 编写类似的测试也会通过。

例子 :

0 投票
1 回答
198 浏览

java - 从 java 库执行 ArchUnit 测试

我有一堆具有类似结构的 Java Dropwizard 微服务。我的目标是编写一组 ArchUnit 测试用例,这些测试用例需要在每个服务中运行,如果这些测试用例失败,构建应该会失败。

由于检查将是相似的,我是否可以在一个公共库中提取所有测试用例并将其作为依赖项添加到每个服务中?如何从库中添加要在服务构建中运行的测试用例?

0 投票
1 回答
412 浏览

java - ArchUnit 确保注释存在

给定版本0.12中的ArchUnit库:

是否可以测试一个场景“注释的方法A也应该注释B或声明为注释的类型B”?

例子:

爪哇

B.java

测试用例.java

我尝试了什么?

我认为这ArchConditions.beDeclaredInClassesThat可以完成这项工作,所以我准备了以下规则:

...但显然我误解了上述方法的目的。该实用程序的 Javadoc 根本没有帮助。我可以用任何满足断言“在带有注释的类型中声明的方法”的工作替换最后一行B吗?

0 投票
1 回答
486 浏览

kotlin - ArchUnit 不区分大小写的名称匹配

我正在尝试使用 Arch Unit 设置测试来测试我的命名约定,遵循官方示例

ArchUnit 的命名断言似乎区分大小写,这让我很困扰。

我想测试包中没有任何类domain.service包含单词service.

给定一个类domain.service.FileSystemService

  • 该测试通过:
  • 此测试失败:

我错过了什么吗?有没有办法让 ArchUnit 的比较不区分大小写?

0 投票
3 回答
3706 浏览

java - 如何在 ArchUnit 规则中排除一个类?

在 ArchUnit 中为分层架构创建规则时,我不清楚如何排除单个类(Main)。 基本示例排除了源和目标。

...但我不明白它如何转化为我的需要。我只想忽略 Main 。为什么?因为 Main 引用了所有层,因为它注入了所有依赖项。

原始代码 与失败的测试一起在我的 GitHub 中。(该项目是一个虚拟项目,因此运行起来很简单;只需克隆它,运行测试并看到一个失败)。

0 投票
0 回答
94 浏览

kotlin - 如何使用 ArchUnit 在 Kotlin 的构造函数中强制执行私有参数?

我有这堂课:

我有这个测试:

但它不起作用,因为我的目标是构造函数而不是它们的参数。

是否可以在 Kotlin 构造函数中定位这些字段?我想强制该private关键字用于标记所有构造函数参数(在这种情况下,只有 userRepo)。

0 投票
2 回答
86 浏览

archunit - 我可以在 ArchUnit 中检查吗

我有一个众所周知的 Log4J 记录器。

我可以检查正确的文件是否传递给记录器?

0 投票
1 回答
245 浏览

java - ArchUnit 类应该只依赖于包中的特定类

我有两个单独的包:

我想设置一个规则来检查包mycom.delivery是否只依赖于OrderPlaced包中的其他类,而没有其他类mycomp.sales

到目前为止,我想出了这个:

但这在OrderPlacedListener(依赖于mycomp.sales.OrderPlaced)上失败了。

这个怎么做?

0 投票
0 回答
95 浏览

java - 如何定义arch规则以禁止类捕获特定的异常类型?

我希望我可以定义一个禁止类捕获给定异常类型的拱形规则。类似于以下规则:

有没有办法在 ArchUnit 中做到这一点?