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

Spring Boot版本:2.7.15

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

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

示例代码:

@Service
public class UserService {
   
    @Autowired
    private UserMapper userMapper;

    public String queryUsers() {
   
        return userMapper.queryUsersFromDB();
    }
}
@Repository
public class UserMapper {
   
    public String queryUsersFromDB() {
   
        return "user list";
    }
}
@SpringBootTest(
        webEnvironment = SpringBootTest.WebEnvironment.NONE,
        classes = {
   UserService.class, UserMapper.class}
)
public class UserServiceTest {
   
   @Autowired
   private UserService userService;

   @Test
   public void testUserService() {
   
      assertEquals("user list", userService.queryUsers());
   }
}

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

@Test
public void testUserService() {
   
    assertEquals("user list", userService.queryUsers());

    // 查看容器中的bean
    System.out.println(ctx.getBeanDefinitionCount());
    for (String name : ctx.getBeanDefinitionNames()) {
   
        System.out.println(name);
    }
}

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

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

相关推荐

  1. 精通SpringBoot单元测试

    2024-01-23 09:18:04       20 阅读
  2. springboot 单元测试

    2024-01-23 09:18:04       17 阅读
  3. SpringBoot单元测试剖析

    2024-01-23 09:18:04       17 阅读
  4. SpringBoot单元测试

    2024-01-23 09:18:04       16 阅读
  5. SpringBoot单元测试

    2024-01-23 09:18:04       19 阅读
  6. Springboot项目中Controller层单元测试

    2024-01-23 09:18:04       32 阅读
  7. springboot集成mybatis 单元测试

    2024-01-23 09:18:04       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-23 09:18:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-23 09:18:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-23 09:18:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-23 09:18:04       20 阅读

热门阅读

  1. Cookie在客户机上是如何存储的如何获取如何保密

    2024-01-23 09:18:04       32 阅读
  2. 《设计模式的艺术》笔记 - 解释器模式

    2024-01-23 09:18:04       25 阅读
  3. 微服务的拆分规范和原则

    2024-01-23 09:18:04       31 阅读
  4. 微服务基础概念、架构图、划分图

    2024-01-23 09:18:04       33 阅读
  5. Codefroces 191A - Dynasty Puzzles

    2024-01-23 09:18:04       30 阅读
  6. 283.除自身以外数组的乘积(前缀积、C解法)

    2024-01-23 09:18:04       33 阅读
  7. MongoDB详解(1)

    2024-01-23 09:18:04       32 阅读
  8. etcd备份

    2024-01-23 09:18:04       28 阅读
  9. VUE: 处理 PDF文件

    2024-01-23 09:18:04       62 阅读
  10. Hive 拉链表详解及实例

    2024-01-23 09:18:04       30 阅读