目录
二 Unable to find a @SpringBootConfiguration
一 SpringBoot正常整合JUnit
新增模块--spring initializr--不需要勾选web(什么也不勾选)
SpringBoot整合junit不需要你做任何事情
1 注入你要测试的对象
2 执行你要测试的对象的对应方法
3 启动junit 测试
总结
二 Unable to find a @SpringBootConfiguration
报错如下:
Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
发生原因:
测试类和SpringBoot引导类不在一个包
解决办法1
在@SpringBootTest注解加属性(classes = 引导类.class)
解决办法2
或者加注解@ContextConfiguration(classes = 引导类.class)
总结
1 测试类如果和SpringBoot引导类在一样的目录层级,正常运行就可以
比如:
引导类在src--main--java的 com.qing下
测试类可以在 test--java的 com.qing下/ com.qing再往下的目录下
2 测试类如果和SpringBoot引导类 不在一样的目录层级
比如:
引导类在src--main--java的 com.qing下
测试类可以在 test--java的 com目录下
需要在@SpringBootTest注解加属性(classes = 引导类.class)
或者加注解@ContextConfiguration(classes = 引导类.class)
分析
原理:
SpringBoot会在和测试类一样的包里扫描找@SpringBootConfiguration注解,如果测试类和引导类路径一样,就找到了引导类的@SpringBootApplication注解,这个注解里就带@SpringBootConfiguration注解;如果测试类和引导类路径不一样,就需要特地说明一下引导类是哪个类.