当前位置: 首页 > 知识库问答 >
问题:

Spring Boot测试:无法实例化内部配置类

时经纬
2023-03-14

我想在不涉及主Spring配置的情况下,为我的DAO层运行JUnit测试。因此,我声明了一个用配置注释的内部类,这样它就会覆盖用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个答案

傅毅然
2023-03-14

任何嵌套的配置类都必须声明为静态。因此,您的代码应该是:

@Configuration
static class TestConfiguration{

    @Bean
    public InterviewInformationDao getInterviewInformationDao(){
        return new InterviewInformationDaoImpl();
    }
}
 类似资料:
  • 在springboot应用程序中,我有一个jar,然后是一个子目录config with application。属性,applicationContext。xml和log4j。。。属性文件。 我正在尝试外部化log4j配置。application.properties是这样外部化的。 但是,当springboot运行时,它使用jar文件中的log4j配置文件。通过使用-Dlog4j.debug选

  • pom.xml 当我尝试部署项目时,它抛出了一个错误: 谁能告诉我我错过了什么吗?我真的很感激。 null 错误的根本原因来自maven依赖项。我删除了./m2并重建项目。现在很好用。不知道如何在项目中检测这类问题。

  • 问题内容: 我有一个实用程序方法,当从中删除了不相关的逻辑时,简化的方法将如下所示: 问题是,如果是诸如的内部类,则该方法即使是公共方法也将不起作用,因为它将抛出。 有没有办法动态实例化内部类? 问题答案: 如果它是真正的 内部 类而不是 嵌套 (静态)类,则有一个隐式构造函数参数,它是对外部类实例的引用。在那个阶段您不能使用- 必须获得适当的构造函数。这是一个例子:

  • 我们的使用和配置基于https://github.com/hdineth/springboot-freemaker-email-send: 但是,任何地方都没有关于如何使用JUnit5为此运行单元测试的信息或文档。 当我添加相关的依赖项时 在我们的实际代码中(这是一个大的多模块项目),我有另一个错误,原因是: 但这只是为了上下文,首先我想让它在简单的示例项目中工作,然后担心让它在复杂的项目中工作。

  • 本文向大家介绍Springboot Cucumber测试配置介绍详解,包括了Springboot Cucumber测试配置介绍详解的使用技巧和注意事项,需要的朋友参考一下 目前Spring-boot成为了java开发的主流框架,Cucumber作为一款支持dsl的自动化测试工具,很适合用户编写DSL优化过的单元测试等测试用例。本文将讲解如何在SpringBoot中配置Cucumber进行自动化测试

  • 我有一个Spring Boot 2.7.1(但与2.6.4相同)项目使用Cucumber BOM 7.4.1。 我的切入点是: 我的胶水代码: 运行Cucumber测试时,我遇到了以下错误: 我可以在日志中看到我的Spring上下文被加载,内存中的DB被引导。。。之后失败。 在调试模式下,我看到给定/何时/然后步骤被捕获,因此可以肯定地找到我的功能文件。 实际上,当Cucumber在执行步骤后执行