Junit5如何只加载一次SpringBoot上下文环境

问题描述 投票:0回答:1

单元测试时,执行测试类需要启动springboot项目,加载上下文数据,并在每次执行测试时重新加载上下文。这导致每个单元测试花费 3-5 分钟的时间。如何解决这个问题?

spring-boot unit-testing junit5
1个回答
0
投票

问题是您不需要加载完整的上下文。

@SpringBootTest
注释加载整个Spring上下文。保留它用于集成测试或当您需要完整的上下文时(这取决于您对哪种测试感兴趣)。

对于单元测试(例如测试服务类),请考虑使用 Mockito 框架。 Spring Boot 提供的

@MockBean
注解允许您将模拟对象添加到 Spring 应用程序上下文中。这可以显着减少启动时间,因为它避免了加载实际的 bean 及其依赖项。单元测试应该是快速且隔离的,这些测试不需要完整的应用程序上下文。

© www.soinside.com 2019 - 2024. All rights reserved.