junit5 - ArchUnit 测试实际的分层架构
问题描述
目前在我们的项目中,我们已经通过以下方式实现了分层架构,其中控制器、服务、存储库针对每个功能放置在同一个包中,例如:
- 特点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
请建议当所有层都在一个包中时是否有可能测试分层架构
解决方案
如果在您的项目中正确遵循文件名约定,那么您如何编写自定义测试用例而不是使用layeredArchitecture()
.
例如:
classes().that().haveSimpleNameEndingWith("Service")
.should().onlyBeAccessed().byClassesThat().haveSimpleNameEndingWith("Controller")
noClasses().that().haveSimpleNameEndingWith("Service")
.should().accessClassesThat().haveSimpleNameEndingWith("Controller")
推荐阅读
- pegjs - 如何用 pegjs 解析没有任何环绕的字符串?
- xml - 更换
元素值转换为空元素 - c++ - 对使用条件变量进行并发编程有点困惑
- python - Stylerframe 到 Plotly 图中的 html
- angular - 类型“对象”上不存在属性“味精”.ts(7053)
- reactjs - 从 api 响应 React 更改值
- javascript - 向不同端口上的 Nodejs/Expressjs 服务器发出 Axios 请求
- java - OffsetDateTime 对象不应转换为 json 对象
- android - 要采取的 Salesforce Android SDK 登录页面错误详细信息
- python - 如何在列表理解中获取列表的长度