11.1 怎么写测试代码

使用cargo生成lib项目时,会自自动生成测试代码样例。

测试代码在一个测试模块中,使用 #[cfg(test)] 声明模块,使用 #[test]声明函数,即表明函数是测试函数。

11.1.1 常用测试函数

常用的测试函数有 assert!assert_eq!assert_ne! 几个,可以接受参数和消息。消息支持格式化。

11.1.2 测试标记

可以使用 #[should_panic]声明测试测试,表示希望函数中断。如果中断,测试成功,否则测试失败。

11.1.3 返回Result

测试函数可以返回 Result,返回Result时,值为 Some测试成功,为Err测试失败。

11.2 控制测试代码的运行

11.2.1 指定输出

可以指定成功时是否输出信息,默认是不输出的,只有失败才输出

cargo test -- --show-output

11.2.2 控制是否单线程执行

如果用例之间有资源冲突,可以控制必须单线程执行测试,也可以指定线程数量。

cargo test -- --test-threads=1

11.2.3 指定函数执行

可以通过cargo test method_name直接指定哪个测试函数执行。这里函数名直接包括传入的名称,都会执行。

11.2.4 ignore忽略测试

在测试函数上标记#[ignore],测试会默认被忽略。
可以执行 --ignored 只执行被忽略的测试或--include-ignored执行全部测试。

11.3 测试代码组织

rust中有两种测试,单元测试和集成测试。

单元测试直接在代码文件中添加,使用 use supper::**引入外部模块,可以测私有函数。过程与之前说的一样, #[cfg(debug)] 模块#[test]函数中使用即可。

集成测试则是放在单独的crate中,在工程目录下创建tests文件夹,只能测试公开函数。

测试不是很重点的东西,大略了解了一下,后续用到的时候再详细了解。

  • 打赏
  • 分享
分享到...
请选择打赏方式
  • 微信
  • 支付宝

By yhl

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注