01-ArchUnit是什么

本文翻译自ArchUnit

ArchUnit 是一个免费、简单且可扩展的库,用于使用任何普通的 Java 单元测试框架检查 Java 代码的体系结构。 也就是说,ArchUnit 可以检查包和类、层和切面之间的依赖关系,检查循环依赖关系等等(dependencies between packages and classes, layers and slices, check for cyclic dependencies and more)。 它通过分析给定的 Java 字节码、将所有类导入 Java 代码结构来实现这一点。 您可以在 ArchUnit 示例和 GitHub 上的源代码中找到当前版本的示例。

如果您想直接进入第一个 ArchUnit 测试,请按照以下步骤操作

添加 ArchUnit 作为依赖

ArchUnit 可以从 Maven 仓库获得(obtained)。
Maven依赖:


    com.tngtech.archunit
    archunit
    1.0.0-rc1
    test

Gradle

dependencies {
    testImplementation 'com.tngtech.archunit:archunit:1.0.0-rc1'
}

创建一个测试

import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.importer.ClassFileImporter;
import com.tngtech.archunit.lang.ArchRule;

import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;

public class MyArchitectureTest {
    @Test
    public void some_architecture_rule() {
        JavaClasses importedClasses = new ClassFileImporter().importPackages("com.myapp");
    
        ArchRule rule = classes()... // 看下一部分
    
        rule.check(importedClasses);
    }
}

参照API指南

参考该处视频有相应API指南,如:

classes().that().areAnnotatedWith(Serivce.class).or().haveNameMatching(".*Service");

如何继续下一步

有关更多信息,例如如何使用扩展的 JUnit 4 支持提供,请查看用户指南或 ArchUnit 示例中当前版本的示例。

你可能感兴趣的:(01-ArchUnit是什么)