Rust 单元测试与集成测试实践
Rust 单元测试与集成测试实践
Rust 的测试能力由 Cargo 原生提供,不需要额外搭框架。只要项目结构合理,就可以很自然地写单元测试、集成测试和文档测试。
一、单元测试
单元测试通常写在同一个文件中:
1 | pub fn add(a: i32, b: i32) -> i32 { |
运行:
1 | cargo test |
二、测试私有函数
因为单元测试模块在同一个文件里,所以可以测试私有函数。这对复杂解析器、算法、格式转换函数很有用。
三、集成测试
集成测试放在项目根目录的 tests 文件夹中:
1 | tests/ |
集成测试会像外部用户一样调用你的库,因此更适合验证公开 API。
四、错误测试
不要只测成功路径,也要测试失败输入:
1 |
|
Rust 的 Result 和 Option 很适合表达这些边界。
五、工程建议
测试可以按风险分层:
- 纯函数:优先单元测试
- 模块边界:写集成测试
- 外部依赖:用测试替身或临时资源
Rust 的编译器已经帮你挡住类型和所有权问题,测试重点应该放在业务规则、边界输入和错误路径上。