跳至主要內容

测试

ColorSky大约 1 分钟笔记Rust

测试函数

#[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
  • 并行运行测试