Spring Boot 测试:无法实例化内部配置类
Posted
技术标签:
【中文标题】Spring Boot 测试:无法实例化内部配置类【英文标题】:Spring boot test: Unable to instantiate inner configuration class 【发布时间】:2019-08-04 04:38:34 【问题描述】:我想在不涉及我的主要 Spring 配置的情况下为我的 DAO
层运行 JUnit
测试。因此,我声明了一个带有 @Configuration
注释的内部类,以便它覆盖带有 @SpringBootApplication
注释的主应用程序类的配置。
这是代码:
@RunWith(SpringRunner.class)
@JdbcTest
public class InterviewInformationControllerTest
@Configuration
class TestConfiguration
@Bean
public InterviewInformationDao getInterviewInformationDao()
return new InterviewInformationDaoImpl();
@Autowired
private InterviewInformationDao dao;
@Test
public void testCustomer()
List<Customer> customers = dao.getCustomers();
assertNotNull(customers);
assertTrue(customers.size() == 4);
但我得到了错误:
Parameter 0 of constructor in com.test.home.controller.InterviewInformationControllerTest$TestConfiguration required a bean of type 'com.test.home.controller.InterviewInformationControllerTest' that could not be found.
【问题讨论】:
【参考方案1】:任何嵌套的配置类都必须声明为静态。所以你的代码应该是:
@Configuration
static class TestConfiguration
@Bean
public InterviewInformationDao getInterviewInformationDao()
return new InterviewInformationDaoImpl();
【讨论】:
以上是关于Spring Boot 测试:无法实例化内部配置类的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试使用 Hibernate ogm 和 spring boot 时,控制台给出“无法实例化命名策略类”错误
基于spring-boot-data-jdbc的RowMapper实例的初始化配置,配置内容和实体类的代码由测试类生成