首页 > 解决方案 > ArchUnit 测试实际的分层架构

问题描述

目前在我们的项目中,我们已经通过以下方式实现了分层架构,其中控制器、服务、存储库针对每个功能放置在同一个包中,例如:

我发现了以下拱单元测试示例,其中此类类放置在专用包中https://github.com/TNG/ArchUnit-Examples/blob/master/example-junit5/src/test/java/com/tngtech/ archunit/exampletest/junit5/LayeredArchitectureTest.java

请建议当所有层都在一个包中时是否有可能测试分层架构

标签: junit5archunit

解决方案


如果在您的项目中正确遵循文件名约定,那么您如何编写自定义测试用例而不是使用layeredArchitecture().

例如:

classes().that().haveSimpleNameEndingWith("Service")
    .should().onlyBeAccessed().byClassesThat().haveSimpleNameEndingWith("Controller")

noClasses().that().haveSimpleNameEndingWith("Service")
    .should().accessClassesThat().haveSimpleNameEndingWith("Controller")

推荐阅读