首页 > 解决方案 > 如何在 JUnit 测试期间在 @Configuration 类中自动装配?

问题描述

我正在测试我的多模块 spring boot 项目的一个模块。

我正在对一个注释为@Configuration 的类进行单元测试。有一种方法使用注入了@Autowired 的类。在 JUnit 测试期间,我得到了一个 NullPointer,因为 Autowired 不工作。如何让它发挥作用?

该应用程序运行良好,我的问题只发生在 JUnit 测试上。

我尝试了其他答案中的一些注释

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {BasicConfiguration.class, SomeClass.class})
@TestPropertySource(locations= "classpath:applicationTest-configs-ok.properties")
public class BasicConfigurationTest {

  @Autowired
  BasicConfiguration basicConfig;
@Configuration
public class BasicConfiguration {

  @Autowired
  private SomeClass someClass ;  <--- this is not working

  @Bean
  AnotherClass someMethod(){
    return someClass.doSomething(); <--- nullpointer
  }
@Component
SomeClass {
  @Value("${test.param}"))   <--- defined in applicationTest-configs-ok.properties
  String myParam;
}

应该注入 someClass

标签: javaunit-testingspring-boot

解决方案


上面的例子是有效的,问题出在我犯了一些错误的地方。

我的错。


推荐阅读