在学习SpringBoot,写单元测试的时候碰到以下报错。
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.imooc.service.impl.ProductServiceImplTest': Unsatisfied dependency expressed through field 'productService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.imooc.service.impl.ProductServiceImpl' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
单元测试代码如下:
@Test
public void findOne() throws Exception {
ProductInfo productInfo = productService.findOne("123456");
Assert.assertEquals("123456", productInfo.getProductId());
}
报错的原因是因为在ProductServiceImpl这个类上没加@Service的注解。
另外如果有类似的报错,
- 请检查一下在单元测试的类上有没有加@RunWith(SpringRunner.class)和@SpringBootTest的注解。
- 还有检查一下实体类有没有对应到数据库的那张表。