0


加速Spring Boot单元测试的执行速度

Spring Boot版本:2.7.15

SpringBootTest

注解可以配置以下属性来加速单元测试的执行:

  1. 如果单元测试不涉及到Controller接口调用,可以配置webEnvironment = SpringBootTest.WebEnvironment.NONE不启动web容器
  2. 可以通过classes = {...}手动指定需要注册到容器中的类,如果不设置该属性,默认会注册应用中所有类

示例代码:

@ServicepublicclassUserService{@AutowiredprivateUserMapper userMapper;publicStringqueryUsers(){return userMapper.queryUsersFromDB();}}
@RepositorypublicclassUserMapper{publicStringqueryUsersFromDB(){return"user list";}}
@SpringBootTest(
        webEnvironment =SpringBootTest.WebEnvironment.NONE,
        classes ={UserService.class,UserMapper.class})publicclassUserServiceTest{@AutowiredprivateUserService userService;@TestpublicvoidtestUserService(){assertEquals("user list", userService.queryUsers());}}

可以用以下代码输出容器中注册的所有bean:

@TestpublicvoidtestUserService(){assertEquals("user list", userService.queryUsers());// 查看容器中的beanSystem.out.println(ctx.getBeanDefinitionCount());for(String name : ctx.getBeanDefinitionNames()){System.out.println(name);}}

结果如下:
在这里插入图片描述
容器中只有10个bean

如果不设置

@SpringBootTest

的两个属性,结果如下:
在这里插入图片描述
容器中有133个bean,执行时间大大增加


本文转载自: https://blog.csdn.net/baiyuxuan123123/article/details/135751880
版权归原作者 byx2000 所有, 如有侵权,请联系我们删除。

“加速Spring Boot单元测试的执行速度”的评论:

还没有评论