【问题标题】:How to autowire inside a @Configuration class during JUnit tests?如何在 JUnit 测试期间在 @Configuration 类中自动装配?
【发布时间】:2019-04-03 14:34:06
【问题描述】:

我正在测试我的多模块 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;
}

应该注入一些类

【问题讨论】:

  • @Smajl 我的问题只是这个 JUnit 测试,我的应用程序运行良好
  • basicConfig 被注入好吗?
  • @Antoniossss 是的
  • 我创建了完全相同的文件并且它可以工作。你能分享你的完整场景吗?

标签: java unit-testing spring-boot


【解决方案1】:

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

我的错。

【讨论】:

  • 我们要关闭它吗?
猜你喜欢
  • 1970-01-01
  • 2015-02-19
  • 2012-05-20
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
相关资源
最近更新 更多