在JUnit测试期间如何在@Configuration类内部自动装配?

时间:2019-04-03 14:34:07

标签: java unit-testing spring-boot

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

我正在对标注为@Configuration的类进行单元测试。有一种使用使用@Autowired注入的类的方法。在JUnit测试期间,我得到了一个N​​ullPointer,因为自动接线无法正常工作。如何运作?

应用程序运行正常,我的问题仅发生在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应该被注入

1 个答案:

答案 0 :(得分:1)

上面的示例在起作用,问题出在我犯一些错误的地方。

我不好。