📚 Day 08 - 编写自动化测试简介
创建时间:
2023-04-03 03:01 星期一
测试其实就是一个函数,它用来验证非测试代码是否和预期一致
测试函数需要使用 test attribute #[test]
进行标注
attribute 就是一段 Rust 的代码元数据。
我们创建一个新的项目:
cargo new test_project --lib
看到我们的 lib.rs 有代码
pub fn add(left: usize, right: usize) -> usize {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}
我们利用 shell 语句 cargo test
进行运行。
PS Q:\2023-04-01\test_project\src> cargo test
...
test result: ok. 1 passed[表示测试成功]; 0 failed[失败]; 0 ignored[忽略];
0 measured[性能测试]; 0 filtered out[被过滤的测试]; finished in 0.00s
...
测试失败即 panic , 每个测试一个新的线程。主线程看到某个测试的线程 panic 即记录失败。
assert!
当 assert!
宏来自标准库的时候用来确认某个状态是否为 true
, 如果为 false
就 panic
他们都可以传入两个参数 a b
assert_eq!
: 判断 ab 是否相等
assert_ne!
: 判断 ab 是否不相等
无论是 assert!
assert_eq!
assert_ne!
他们都可以追加一个参数也就是提示
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于