我想要实现的是编写一个 ArchUnit 规则来确保我们的包足够小。
例如,假设这样:
natural
├─ goodpackage
│ ├─ apple
│ ├─ banana
│ ├─ mango
├─ badpackage
│ ├─ file1
│ ├─ file2
│ ├─ ...
│ ├─ file10
对于此示例,假设超过 9 个文件太多,而最多 8 个文件足够小。
这也仅适用于叶包,即最底层的包(如果此包中有文件,但也有子包,则测试应针对子包)
我尝试使用该类com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes
并希望找到一种在包内进行迭代的方法。但没有运气。
我还搜索了是否可以直接从 ArchUnit 获取软件包,例如:
@Test
void leafPackagesShouldNotHaveMoreThan9Files() { }
packages().that().areInSubPackages().shouldNot().have(moreThan9Files()).check(importedClasses);
}
但也是不可能的。
如何使用 ArchUnit 检查叶包中的文件数量是否少于 N 个?
你也许可以使用类似这样的方法:
...