测试类中的静态内部类识别不到NoSuchBeanDefinitionException解决

问题

测试类里面的静态内部类识别不到

@RunWith(SpringRunner.class)
@SpringBootTest
public class FooTest {
    @Autowired
    private Bar bar;
    @Test
    public void bar() {
        
    }

    @Component
    public static class Bar {
    }

}

但执行bar测试方法的时候 报错:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.my.app.dao.FooTest$Bar' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1654) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    
    

解决
添加两个额外的注解

@RunWith(SpringRunner.class)
@SpringBootTest
@ComponentScan
@ImportAutoConfiguration
public class FooTest 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理