1.摘要
Rust中的测试函数是用来验证非测试代码是否是按照期望的方式运行的, 测试函数体通常需要执行三种操作:1.设置任何所需的数据或状态;2.运行需要测试的代码;3.断言其结果是我们所期望的。本篇文章主要探讨了Rust自动化测试的几种常见场景。
2.测试函数详解
在Rust项目工程中, 可以对任意函数进行自动化测试, 前提是需要在被测试函数上面加上#[test]注解, 然后运行cargo test命令进行函数自动化测试, Rust会查找所有被#[test]注解的函数并自动进行测试。
先看下面一段代码:
#[test]
fn add_calc() {
let result = 1 + 2;
assert_eq!(result, 3);
}
在上面的代码中, 我实现了一个加法计算的函数: add_calc(), 将加法结果保存到不可变变量result中, 并使用了assert_eq!宏来断言1+2的结果, assert!宏由标准库提供, 在希望确保测试过程中一些条件为true时非常有用。在函数上方加上了#[test]注解, 表示该函数将执行自动化测试, 运行: cargo test看下结果:
从测试结果中, 可以看到test add_calc ... ok 这行, 表示该函数测试通过了。
现在我修改下断言的结果, 将代码修改为:
#[test]
fn add_calc() {
let result = 1 + 2;
assert_eq!(result, 4);
}