2

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

  • 特点1:
    • Feature1控制器
    • Feature1服务
    • Feature1存储库
  • 特点2:
    • Feature2控制器
    • Feature2Service
    • Feature2存储库

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

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

4

1 回答 1

2

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

例如:

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

noClasses().that().haveSimpleNameEndingWith("Service")
    .should().accessClassesThat().haveSimpleNameEndingWith("Controller")
于 2019-10-30T13:30:29.950 回答