【问题标题】:Spring Boot autowire configuration class into Junit TestSpring Boot 自动装配配置类进入 Junit 测试
【发布时间】:2021-12-23 18:22:09
【问题描述】:

我目前在 Spring Boot 中遇到了 Junit 测试的问题。我有一个 @Configuration 类,我想为其测试 @Bean 方法。因为这些方法在测试期间被跳过,所以我将配置方法的内容提取到一个受保护的方法中,然后将在@Configuration 类的@Bean 方法中调用该方法。 我这样做是为了测试这些方法的行为。在这个方法中,不同的@ConfigurationProperties 用于加载一些设置。

现在,在我的 ConfigurationTest 类中,我正在模拟 ConfigurationProperties 类,以便测试 @Bean 方法的正确行为。

我的问题是,当我在 @Bean 方法内(更具体地说是在从 @Bean 方法调用的受保护方法内)时,我的 ConfigurationProperties 类的 Mockito 模拟总是返回 null。感觉我设置@Configuration 类的方式有问题。目前我正在自动装配它。

我现在的问题是,如何正确设置 @Configuration 类,以便调用它的函数并模拟使用的 @ConfigurationProperties 类的返回值?

提前致谢!

【问题讨论】:

  • 你想在这个被测@Configuration 类上运行什么样的断言?
  • 总的来说,没有人像这样测试配置bean。您可以通过测试它一起或单独创建的单个 bean 来间接测试它。您只需在要注入测试的 bean 上使用 @Autowired,这就是您知道 Configuration 是否创建它们的方式
  • 如果你能展示一些代码,会更容易帮助你,也更容易理解。

标签: java spring spring-boot junit spring-boot-test


【解决方案1】:

@EnableConfigurationProperties(value=YourConfigurationProperties.class) 添加到您的测试类。这将加载属性。

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2014-03-11
    • 2020-03-24
    • 2014-07-30
    • 2018-12-01
    相关资源
    最近更新 更多