我的项目看起来像:
myProject/
/persistence/pom.xml
/persistence/src/main/java/PersistenceApplication.java
/persistence/src/main/java/**.java
/business/pom.xml
/business/src/main/java/BusinessApplication.java
/business/src/main/java/**.java
/api/pom.xml
/api/src/main/java/ApiApplication.java
/api/src/main/java/**.java
api
取决于business
,而business
取决于persistence
模块。在生产中运行时,ApiApplication
将是主要类。但是,在运行测试时,我觉得需要添加
PeristenceApplication
和BusinessApplication
以便运行以@SpringBootTest
注释的Spring测试。真的需要吗?我对
Spring-Boot
不太了解,很想知道这里的建议是什么?如何在不使用
@SpringBootTest
和*Application.java
模块中的persistence
的情况下使用business
测试模块?谢谢
最佳答案
我认为,分层分离(水平)是十年前的过时方法。我认为该项目不应“按模块”或“按包”构建。
它的结构应为“按功能打包”或“按功能模块”或“按功能微服务”(垂直解耦)。
使用垂直解耦,您将在集成测试中涵盖一个包/模块/微服务中的某些功能,因此您的考虑自然会消失。