上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

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

guduadmin463月前

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);
    }
}

结果如下:

加速Spring Boot单元测试的执行速度,在这里插入图片描述,第1张

容器中只有10个bean

如果不设置@SpringBootTest的两个属性,结果如下:

加速Spring Boot单元测试的执行速度,在这里插入图片描述,第2张

容器中有133个bean,执行时间大大增加

网友评论

搜索
最新文章
热门文章
热门标签
 
 女人梦到捉鱼 好多鱼  梦到蛇朝自己冲过来  梦见被蛇追是什么预兆 女性