
📚 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! 他们都可以追加一个参数也就是提示
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于