Spring Boot 测试规范
# Spring Boot 测试规范
# 测试分类
- 单元测试:隔离单个类或少量依赖进行测试
- 集成测试:启动 Spring 上下文进行多组件协同验证
- 接口测试:对外接口行为和契约验证
# 测试命名与结构
- 测试类命名为
*Test或*Tests - 每个测试方法表达一个清晰行为,例如
shouldCreateUserWhenInputValid - 测试类按照被测类所在包结构进行组织
# 单元测试规范
- 使用 Mock 框架隔离外部依赖与基础设施实现
- 保持测试运行速度快且互不依赖
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@InjectMocks
private UserService userService;
@Mock
private UserRepository userRepository;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 集成测试规范
- 使用
@SpringBootTest启动完整应用上下文 - 对外部依赖可使用 Mock Server 或测试容器模拟
@SpringBootTest
class UserControllerTest {
@Autowired
private MockMvc mockMvc;
}
1
2
3
4
5
6
2
3
4
5
6
# 测试数据与环境
- 使用固定的测试数据集或工厂方法创建测试对象
- 对数据库相关测试使用内存数据库或测试容器
- 测试应具备可重复执行性与环境无关性