测试
大约 1 分钟
测试函数
#[test]
fn tests() {}
- 测试失败的条件: 发生
panic!
控制台输入cargo test
即可测试标注的所有测试函数
断言
assert!
- 确认某个状态是否为 True
- True: 通过
- False: panic!
判断 2 个值是否相等
assert_eq!
: 相等assert_ne!
: 不相等- 相等: 通过
- 不相等: 打印 left 和 right 的值
自定义错误信息
assert!
: 在第二个参数输入assert_eq!
&assert_ne!
: 第三个参数输入- 在自定义信息后面可以加入参数,这些参数会被
format!
拼接assert!(False, "error info: {}, {}", info_1, info_2)
should_panic!
: 编写代码是否在特定条件下发生恐慌
如果发生panic!
则测试函数通过- 可选的
ecpected
参数: 检查失败的消息中是否有包含指定的文字
- 可选的
#[test]
#[should_panic(expected = "the message")]
Result<T, E>
在测试中使用#[test]
fn func() -> Result<(), String> {}
控制测试的运行方式
改变
cargo test
的测试行为默认行为
- 并行运行
- 所有测试
- 捕获(不显示)所有输出,使读写与测试相关的输出更容易
命令行参数:
- 针对
cargo test
的参数: 紧跟cargo test
后 - 针对测试可执行文件的程序: 放在
--
后cargo test --help
,cargo test -- --help
- 针对
并行运行测试