springboot @Test单元测试获取注入的bean对象
1.情景展示
在springboot项目中,写了测试方法
运行该方法,通过注解注入的对象,却获取不到
2.原因分析
起初,我以为拿不到这个对象,是因为该类没有注入到spring容器中,所以,拿不到。(普通情况下,原因就是如此,但Junit不是因为这)。
将该类注入到spring中,同样无效。
3.解决方案
我们需要在类上添加以下代码:
@RunWith(SpringRunner.class) @SpringBootTest(classes = {项目启动类.class})
这次,就能拿到对象啦。
我们会发现:
通过这种方式,在运行@Test之前,会启动这个项目,然后对象才会被注入到单元测试所在类中。
并且,这个项目的生命周期为@Test的运行时长;
另外,这个项目的运行和本身项目的运行没有冲突,可以共同启动,互不影响(可以理解为两个不同的进程)。
这可能与它们的执行器有关
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/14216817.html