java - 什么时候需要在 `@SpringBootTest` 注解中提及应用程序类?
问题描述
所以如果我没有在测试类注释中提到应用程序测试,我的测试类就找不到bean
@RunWith(SpringJUnit4ClassRunner::class)
@SpringBootTest(classes=[MySpringApplication::class])
@WebAppConfiguration
class MyFooIT{...}
我已经看到(并编写了)其他测试(在其他项目中以及在此),我不需要明确提及该类。
我不确定为什么会发生这种情况,我怀疑不知道可能会导致我以后遇到问题。
什么时候需要为类提供@SpringBootTest
注释,什么时候不需要?
解决方案
在两种情况下,您可能必须在 中指定要使用的应用程序类@SpringBootTest
:
- 当您的测试类不在应用程序类的根包中时(有关结构的更多详细信息,请参见此处)
- 当您的主应用程序包下有多个应用程序类时。这通常发生在您使用相同包具有依赖项时(模块 A
com.example
用作根包,模块 B 依赖于模块 A 并com.example
用作根包)
您可以检查您MyFooIT
是否在根包的层次结构下(包含MySpringApplication
),或者您是否在同一个根包下有多个应用程序类。
推荐阅读
- angular - 将两个元素设置为相同的高度
- python - 读取目录中以某个字符串开头的所有文件
- identityserver4 - SilentRenewService._tokenExpiring:signinSilent 出错:帧窗口超时 t.error
- javascript - vis.js在删除单个节点时删除整个图
- r - 在r中转换向量和矩阵之间相关性的最快方法是什么?
- java - 如何在 Java 中使用 instanceof?
- azure - 是否可以在 Azure AKS 部署中更改子网?
- javascript - 如何访问从 API 调用返回的对象的值
- html - 文本超出弹出窗口底部
- git - 发布拉取请求后,Jenkins 禁用分支上的项目构建