1.情景展示

  在springboot项目中,写了测试方法

springboot @Test单元测试获取注入的bean对象

  运行该方法,通过注解注入的对象,却获取不到

springboot @Test单元测试获取注入的bean对象 

2.原因分析

  起初,我以为拿不到这个对象,是因为该类没有注入到spring容器中,所以,拿不到。(普通情况下,原因就是如此,但Junit不是因为这)。

springboot @Test单元测试获取注入的bean对象

  将该类注入到spring中,同样无效。

3.解决方案

  我们需要在类上添加以下代码:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {项目启动类.class})

springboot @Test单元测试获取注入的bean对象

  这次,就能拿到对象啦。 

springboot @Test单元测试获取注入的bean对象

  我们会发现:

  通过这种方式,在运行@Test之前,会启动这个项目,然后对象才会被注入到单元测试所在类中。

springboot @Test单元测试获取注入的bean对象

  并且,这个项目的生命周期为@Test的运行时长;

  另外,这个项目的运行和本身项目的运行没有冲突,可以共同启动,互不影响(可以理解为两个不同的进程)。

  这可能与它们的执行器有关

springboot @Test单元测试获取注入的bean对象

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

 

 

相关文章:

  • 2022-12-23
  • 2021-08-30
  • 2022-12-23
  • 2023-04-10
  • 2022-12-23
  • 2022-12-23
  • 2021-04-09
  • 2021-12-10
猜你喜欢
  • 2021-11-25
  • 2021-05-14
  • 2021-08-26
  • 2021-10-29
  • 2022-12-23
  • 2022-12-23
  • 2022-01-01
相关资源
相似解决方案