我如何使用 Archunit 仅测试 类 某些 Spring 配置文件
How can I test only classes with certain Spring profiles with Archunit
我有一个 Spring 具有不同配置文件的应用程序,例如“开发”和“生产”。我使用 Archunit 测试架构。我有像
这样的测试
@Test
public void Services_should_only_be_accessed_by_Controllers() {
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.mycompany.myapp");
ArchRule myRule = classes()
.that().resideInAPackage("..service..")
.should().onlyBeAccessed().byAnyPackage("..controller..", "..service..");
myRule.check(importedClasses);
}
我包裹中的 类 有不同的配置文件。我如何才能仅将 类 包含在 Spring 配置文件“生产”中?
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.mycompany.myapp")
.that(DescribedPredicate.describe("profile", clazz ->
clazz.isAnnotatedWith(Profile.class) &&
Arrays.asList(clazz.getAnnotationOfType(Profile.class).value()).contains("production")));
我有一个 Spring 具有不同配置文件的应用程序,例如“开发”和“生产”。我使用 Archunit 测试架构。我有像
这样的测试@Test
public void Services_should_only_be_accessed_by_Controllers() {
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.mycompany.myapp");
ArchRule myRule = classes()
.that().resideInAPackage("..service..")
.should().onlyBeAccessed().byAnyPackage("..controller..", "..service..");
myRule.check(importedClasses);
}
我包裹中的 类 有不同的配置文件。我如何才能仅将 类 包含在 Spring 配置文件“生产”中?
JavaClasses importedClasses = new ClassFileImporter().importPackages("com.mycompany.myapp")
.that(DescribedPredicate.describe("profile", clazz ->
clazz.isAnnotatedWith(Profile.class) &&
Arrays.asList(clazz.getAnnotationOfType(Profile.class).value()).contains("production")));