【发布时间】: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