gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:06:06 25 4
gpt4 key购买 nike

您好,我想为服务类编写一个 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);
}

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

例子:

  @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);

}

最佳答案

了解具体细节后,我认为您的问题可以简化为如何防止某些类具有 java.util.Date 类型的字段。

在一个小型测试项目中,我准备了以下 ArchRule,它似乎有效:

ArchRuleDefinition.noFields().should().haveRawType(Date.class)

关于java - 任何服务类都不应使用 Java.util.date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58559725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com