rust的单测和文档

2022-05-04 11:54:02 浏览数 (2)

测试的目的:

  • 发现问题
  • 保证项目长期的健壮性和可维护性
  • 单元测试是重构的保证,编写无状态函数

rust的单元测试

  • 内置测试框架:属性和宏
  • 断言宏assert!, assert_eq!,assert_ne!,debug_assert!

运行测试

代码语言:rust复制
#[test]
fn basic_test() {
    assert!(true);
}
//RUST_TEST_THREADS = 1
//rustc --test xxx.rs 
  • 隔离测试单独构建测试的文件夹和src同级
    • cargo test
  • 故障测试 #should_panic
  • 忽略测试 #ignore

集成测试

  • 和代码同时创建目录tests

rust的性能测试

使用依赖的包

代码语言:text复制
[dev-dependencies]
criterion = "0.3.5"
代码语言:rust复制
//src/lib/sum.rs

pub fn sum(a :i8, b:i8) -> i8 {
    a   b
}



//bench_x/benches/bench_x.rs

#[macro_use]
extern crate criterion;

extern crate bench_x;

use bench_x::{sum};

use criterion::Criterion;

fn sum_benchmark(c: &mut Criterion) {
    c.bench_function("sum 8", |b| b.iter(|| sum(0001,12)));
}

criterion_group!(fib_bench, sum_benchmark);
criterion_main!(fib_bench);
image.pngimage.png

rust的文档自动生成

文档

  • 原始级//或者/* */
  • 模块级 //! /*!
  • 生成文档cargo doc --no-deps

文档列表

image.pngimage.png

0 人点赞