用途:该项目是一份 Spring 测试基础技能,帮助开发者编写和理解 Spring 应用中的单元测试与切片测试,重点覆盖断言、Mock 行为与上下文管理。
主要能力:涉及 assertThat、assertThatThrownBy、given/willReturn、then(mock).should、ArgumentCaptor、@MockitoBean、@MockitoSpyBean、@DirtiesContext、上下文缓存与测试金字塔等主题。资料说明其适配 Spring Boot 3.2+ / 4.x、Spring Framework 6.x / 7.x、AssertJ 3.24+、Mockito 5.x、JUnit 5。
Boot 4 变化:@MockBean 重命名为 @MockitoBean,测试切片注解迁移到新包,上下文缓存行为也有调整。
适用场景:通用 Spring 测试基础与跨切面测试模式。若涉及 JPA 仓库、Testcontainers、@DataJpaTest,应使用 spring-jpa-testing;REST 控制器、MockMvc、@WebMvcTest 用 spring-mvc-testing;安全、@WithMockUser、JWT、OAuth2 用 spring-security-testing;响应式控制器、@WebFluxTest、StepVerifier 用 spring-webflux-testing;WebSocket/STOMP 用 spring-websocket-testing。
参考资料:AssertJ 标量、Optional、BigDecimal、集合与异常,BDDMockito given/willReturn、then(mock).should、参数匹配器,ArgumentCaptor 用法与验证模式,UnnecessaryStubbingException 与严格桩修复,@MockitoBean 与 @MockitoSpyBean 在 Boot 4 的差异,测试金字塔与各切片注解选择,上下文缓存为何导致测试变慢、缓存键与 @DirtiesContext 影响,通用反模式,以及 Boot 4 注解迁移清单。具体命令、安装方式与完整代码示例资料暂未提供。