ArchUnit是一个免费、简单且可扩展的库,用于检查Java代码的架构。它可以检查包和类之间的依赖关系、层和切片,检查循环依赖等。它通过分析给定的Java字节码,将所有类导入到Java代码结构中来实现这些功能。ArchUnit的主要目的是使用任何普通的Java单元测试框架自动测试架构和编码规则。
示例
在项目中添加Maven Central依赖
Gradle
testImplementation 'com.tngtech.archunit:archunit:1.3.0'
Maven
<dependency>
<groupId>com.tngtech.archunit</groupId>
<artifactId>archunit</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
创建测试
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引导你
下一步看哪里
如需更多信息,请查看http://archunit.org上的用户指南,或查看ArchUnit示例中当前版本的测试示例。
许可证
ArchUnit根据Apache许可证2.0发布,详情请见http://www.apache.org/licenses/LICENSE-2.0。
它重新分发了一些第三方库:
- ASM (http://asm.ow2.org),遵循BSD许可证
- Google Guava (https://github.com/google/guava),遵循Apache许可证2.0
ArchUnit和重新分发的库的所有许可证都可以在licenses文件夹中找到。