关于 spring-testing-fundamentals
面向 Spring 开发者的通用测试技能,涵盖 AssertJ、Mockito 和 JUnit 5,并提供测试切片选择、上下文缓存及 Boot 4 注解迁移指导。
主要功能
- 01AssertJ 断言模式
- 02Mockito 存根与验证
- 03ArgumentCaptor 用法
- 04测试切片选择指导
- 05上下文缓存与 @DirtiesContext
- 06Boot 4 注解迁移
适用场景
- 01为 Spring 应用编写单元测试
- 02选择 Spring 测试切片注解
- 03排查上下文缓存导致的测试缓慢
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ spring-ai-community/ spring-testing-skills --skill spring-testing-fundamentals安装后在 Claude Code 中输入/spring-testing-fundamentals确认已加载。
附带文件references/assertj-mockito-idioms.mdreferences/cross-cutting-testing-patterns.md
详细介绍
Spring 测试基础
信号:assertThat、assertThatThrownBy、given/willReturn、then(mock).should、ArgumentCaptor、@MockitoBean、@MockitoSpyBean、@DirtiesContext、上下文缓存、测试金字塔
测试环境
- Spring Boot 3.2+ / Spring Boot 4.x
- Spring Framework 6.x / Spring Framework 7.x
- AssertJ 3.24+
- Mockito 5.x
- JUnit 5
以下情况请勿使用此技能
你需要特定领域的模式:
- 测试 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 标量、可选值、BigDecimal、集合、异常 | references/assertj-mockito-idioms.md |
BDDMockito given/willReturn、then(mock).should、参数匹配器 | references/assertj-mockito-idioms.md |
ArgumentCaptor 的用法和验证模式 | references/assertj-mockito-idioms.md |
UnnecessaryStubbingException 和严格存根的修复方法 | references/assertj-mockito-idioms.md |
Boot 4 中的 @MockitoBean 与 @MockitoSpyBean | references/assertj-mockito-idioms.md |
| 测试金字塔:何时使用各类切片注解 | references/cross-cutting-testing-patterns.md |
上下文缓存:测试为何运行缓慢、缓存键、@DirtiesContext 的影响 | references/cross-cutting-testing-patterns.md |
| 适用于所有 Spring 测试类型的通用反模式 | references/cross-cutting-testing-patterns.md |
| Boot 4 注解迁移检查清单 | references/cross-cutting-testing-patterns.md |
评论
支持 Markdown