Rust内置了强大的测试框架。本文介绍单元测试、集成测试和基准测试。 ## 单元测试 ```rust pub fn add(a: i32, b: i32) -> i32 { a + b } #[cfg(test)] mod tests { use super::*; #[test] fn test_add() { assert_eq!(add(2, 3), 5); } #[test] #[should_panic(expected = "overflow")] fn test_panic() { panic!("overflow"); } #[test] fn test_result() -> Result<(), String> { if 2 + 2 == 4 { Ok(()) } else { Err(String::from("wrong")) } } } ``` ## 集成测试 ```rust // tests/integration_test.rs use my_crate; #[test] fn it_works() { assert!(my_crate::process().is_ok()); } ``` ## 文档测试 ```rust /// Adds two numbers. /// /// # Examples /// /// ``` /// use my_crate::add; /// assert_eq!(add(2, 3), 5); /// ``` pub fn add(a: i32, b: i32) -> i32 { a + b } ``` ## 基准测试 ```rust use criterion::{black_box, criterion_group, criterion_main, Criterion}; fn fibonacci(n: u64) -> u64 { match n { 0 => 1, 1 => 1, n => fibonacci(n-1) + fibonacci(n-2), } } fn criterion_benchmark(c: &mut Criterion) { c.bench_function("fib 20", |b| b.iter(|| fibonacci(black_box(20)))); } criterion_group!(benches, criterion_benchmark); criterion_main!(benches); ``` 完善的测试是Rust项目质量的保障。