如何使用 ArchUnitTest 检查泛型中的依赖关系?
How to check dependencies in generics with ArchUnitTest?
我们有一个规则,包“foo”不应依赖于包“bar”
noClasses()
.that()
.resideInAPackage("com.foo..")
.should()
.dependOnClassesThat(resideInAPackage("com.bar.."))
.check(javaClasses);
我们在“foo”中有一个接口,使用“bar”有两种方式,直接和通过泛型。
public interface IFoo {
BarClass getBar();
Optional<BarClass> getOptionalBar();
List<BarClass> getListBar();
}
“BarClass getBar();”被 ArchUnitTest 捕获,但是“Optional getOptionalBar()”和“List getListBar()”在测试中没有给我们任何错误。有人知道如何让他们也失败吗?
ArchUnit 0.20.0 引入了对通用 return 类型的支持。
在当前版本中,泛型方法 return 类型的类型参数应自动被视为 class 依赖项。
我们有一个规则,包“foo”不应依赖于包“bar”
noClasses()
.that()
.resideInAPackage("com.foo..")
.should()
.dependOnClassesThat(resideInAPackage("com.bar.."))
.check(javaClasses);
我们在“foo”中有一个接口,使用“bar”有两种方式,直接和通过泛型。
public interface IFoo {
BarClass getBar();
Optional<BarClass> getOptionalBar();
List<BarClass> getListBar();
}
“BarClass getBar();”被 ArchUnitTest 捕获,但是“Optional getOptionalBar()”和“List getListBar()”在测试中没有给我们任何错误。有人知道如何让他们也失败吗?
ArchUnit 0.20.0 引入了对通用 return 类型的支持。 在当前版本中,泛型方法 return 类型的类型参数应自动被视为 class 依赖项。