测试术语表 (Glossary)

核心概念

术语英文释义
单元测试Unit Test对代码中最小可测试单元(方法/函数)进行验证的测试
集成测试Integration Test验证多个单元/模块之间协作的测试
端到端测试E2E Test从用户视角验证完整业务流程的测试
测试切片Test Slicing按层/范围划分测试,只启动所需的最小环境
测试先行Test-First / TDD先编写测试用例,再编写通过测试的实现代码

测试替身

术语英文释义
测试替身Test Double测试中用来替代真实依赖的对象
Stub返回预设结果的替身方法
间谍Spy记录调用信息的替身,可验证交互行为
模拟对象Mock可预设行为并可验证交互的对象(Mockito)
替身类Double Class通过继承/实现接口创建的替代类

JUnit 相关

术语英文释义
测试运行时Test Runtime执行测试方法的框架(如 JUnit)
断言Assertion验证实际结果与预期结果是否一致的机制
测试报告Test Report测试执行结果的汇总文档
@TestTest Annotation标记方法为 JUnit 测试方法的注解

Spring Boot 测试注解

注解用途
@SpringBootTest启动完整 Spring Boot 环境(E2E测试)
@WebMvcTest只启动 Web/MVC 层
@DataJpaTest只启动 JPA 数据访问层
@JsonTest只启动 JSON 序列化组件
@MockBean在 Spring 上下文中替换为 Mock 对象
@WithMockUser为 Security 测试提供模拟认证用户

重构手法

手法英文描述
提炼函数Extract Function将代码块抽取为命名函数
用查询替代变量Replace Variable with Query将硬编码值改为查询方法
组装成类Assemble Methods to Class将相关函数组织为类
去除原始类型偏执Remove Primitive Obsession用对象/枚举替代原始类型
用查询替代参数Replace Parameter with Query方法内部查询代替参数传递
用管道替代循环Replace Loop with Pipeline用函数式管道替代 for 循环
用多态取代条件Replace Conditional with Polymorphism用多态替代 if-else 条件分支
用函数表达意图Express Intent with Functions用命名函数表达代码意图

方法论

术语英文释义
红绿重构Red-Green-RefactoringTDD 三步骤循环
AAAArrange-Action-Assert测试方法体的三段式结构
WWWWhat-When-Want测试命名方法论
CQSCommand-Query Separation命令(修改)与查询(读取)职责分离
TDDTest-Driven Development测试驱动开发

测试反模式

术语释义
测试坏味道 (Test Smell)测试代码中表明设计问题的特征
脆弱测试 (Fragile Test)因实现细节变更而频繁失败的测试
过度 Mock (Over-mocking)Mock 了本不需要隔离的依赖
不稳定断言 (Flaky Assertion)多次运行结果不一致的断言