嗨,我想为服务类编写一个 ArchUnit 测试,这样字段不允许是日期,到目前为止,我可以通过执行以下操作来完成接近我需要的事情:
@Test
public void all_public_methods_in_the_controller_layer_should_return_API_response_wrappers2() {
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.some.package");
methods().that().areDeclaredInClassesThat().areAnnotatedWith(XmlAccessorType.class).and().areDeclaredInClassesThat().resideInAPackage("..webservice..").and().arePublic().and().haveNameMatching("Date").should().haveRawReturnType(SomeOtherDate.class).because("bla bla bla").check(importedClasses);
}
但是,即使类包含 Date 字段,为 Fields 编写类似的测试也会通过。
例子 :
@Test
public void some_architecture_rule22() {
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.some.package");
fields().that().areDeclaredIn(SomeClass.java).and().arePrivate().and().haveRawType(Date.class).should().haveRawType(SomeOtherDate.class).because("bla bla bla").check(importedClasses);
}