单元测试

Rust 支持单元测试。

测试代码组织

对于内部函数,单元测试代码最好放到业务代码的同一个模块下。

对于外部接口,单元测试最好放到独立的 tests 目录。

文档测试

对所有对外接口进行文档测试是一个不错的开始。

编译测试

通过 compiletest 来测试某些代码可能无法编译。 参考: Rustc开发指南

随机测试

使用 第三方库proptest 来进行随机测试。


#![allow(unused)]
fn main() {
use proptest::prelude::*;

proptest! {
    #[test]
    fn check_count_correct(haystack: Vec<u8>, needle: u8) {
        prop_assert_eq!(count(&haystack, needle), naive_count(&haystack, needle));
    }
}
}

代码测试率覆盖检测工具

tarpaulin 是 Cargo 构建系统的代码覆盖率报告工具,目前 仅支持运行 Linux 的 x86_64 处理器