背景:
使用junit + squaretest插件进行单元测试,自动生成的代码时启动报错。
如图:
报错异常信息如下:
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'webMvcConfig':
Unsatisfied dependency expressed through field 'appHandlerInterceptor';
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'com.sifayun.deliver.interceptor.AppHandlerInterceptor' available: expected at least 1 bean which qualifies as autowire candidate.
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
报错提示为:至少需要一个注入容器实体,第一反应是否对实体类没有加上注解导致没有被Spring接管,但实际排查是没问题的。后经过查询资料显示可能是
@ComponentScan注解和@WebMvcTest产生冲突,WebMvcTest无法正确扫描
解决:
使用
@SpringBootTest @AutoConfigureMockMvc
替换 @WebMvcTest 注解。