是否有可能从 ArchUnit 测试中的分层测试条件中排除特定类?
我有包 A、B、C、D 定义如下:
<root>
+- A <-- contains a factory class referring to B, C and D.
+-B
+-C
+-D
包 A 包含由包 B、C 和 D 中的类使用和扩展的实用程序和基类。因此,规则应该是 A 中的类不得引用扩展包中的任何内容,除非 A 中有工厂类它指的是 B、C、D 中的一堆叶类。因此需要从该测试中排除工厂类。
ArchRule rule = Architectures.layeredArchitecture()
.layer("A").definedBy("..a")
.layer("B").definedBy("..a.b..")
.layer("C").definedBy("..a.c..")
.layer("D").definedBy("..a.d..")
.whereLayer("A").mayOnlyBeAccessedByLayers("B", "C", "D", ... and others ...)
.whereLayer("B").mayNotBeAccessedByAnyLayer() // except by "FactoryClass" in A
.whereLayer("C").mayNotBeAccessedByAnyLayer() // except by "FactoryClass" in A
.whereLayer("D").mayNotBeAccessedByAnyLayer() // except by "FactoryClass" in A
ArchUnit 中的“A 中的 FactoryClass 除外”- 条件中的一个短语怎么会出现?
希望我能把自己说清楚...