Rust 单元测试
运行测试 rustc --test first_unit_test.rs
// first_unit_test.rs
#[test]
fn basic_test() {
assert!(true);
}
隔离测试代码
// unit_test/src/lib.rs
//我们想要测试的函数
fn sum(a: i8, b: i8) -> i8 {
a + b
}
#[cfg(test)]
mod tests {
fn sum_inputs_outputs() -> Vec<((i8, i8), i8)> {
vec![((1, 1), 2), ((0, 0), 0), ((2, -2), 0)]
}
#[test]
fn test_sums() {
for (input, output) in sum_inputs_outputs() {
assert_eq!(crate::sum(input.0, input.1), output);
}
}
}
故障测试
// panic_test.rs
#[test]
#[should_panic]
fn this_panics() {
assert_eq!(1, 2);
}
忽略测试
// silly_loop.rs
pub fn silly_loop() {
for _ in 1..1_000_000_000 {};
}
#[cfg(test)]
mod tests {
#[test]
#[ignore]
pub fn test_silly_loop() {
::silly_loop();
}
}