当前位置: 首页 > article >正文

【Rust自学】11.5. 在测试中使用Result<T, E>

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
请添加图片描述

11.5.1. 测试函数返回值为Result枚举

到目前为止,测试运行失败的原因都是因为触发了panic,但可以导致测试失败的方式也不止它。

使用Result枚举的测试函数也比较好写,只需要接收被测试函数的返回值,符合期待的就返回Ok变体,反之就返回Err变体,又因为枚举类型允许变体附带数据,所以还可以在Err上附带一些错误信息来更好的词帮助纠错。

如果是Ok,就代表测试通过;反之就是失败。

看个例子:

    #[test]
    fn it_works() -> Result<(), String> {
        let result = add(2, 2);

        if result == 4 {
            Ok(())
        } else {
            Err(String::from("two plus two does not equal four"))
        }
    }

it_works函数有Result<(), String>返回类型。当测试通过时为Ok(()) ,当测试失败时为Err ,其中包含一个带报错信息的String类型 。

这个测试肯定是通过的。

使用Result枚举来测试有一个注意,就是不要在使用Result<T, E>编写的测试上使用should_panic属性(这个属性在上一篇文章中有讲),因为使用Result<T, E>编写的测试会返回Err而不是直接触发恐慌。


http://www.kler.cn/a/488751.html

相关文章:

  • 深入理解 Python 的多进程编程 (Multiprocessing)
  • 2025年第三届“华数杯”国际赛B题解题思路与代码(Matlab版)
  • OpenCV相机标定与3D重建(53)解决 Perspective-3-Point (P3P) 问题函数solveP3P()的使用
  • Linux 下信号的保存和处理
  • [免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】
  • USB 驱动开发 --- Gadget 设备连接 Windows 免驱
  • npm : 无法加载文件 D:\SoftFile\npm.ps1,因为在此系统上禁止运行脚本。
  • php反序列化 ctf例题演示 框架安全(TP,Yii,Laravel) phpggc生成框架利用pop
  • STM32 拓展 RTC案例1:使用闹钟唤醒待机模式 (HAL库)
  • [ LeetCode 75 ] 283 移动零(JavaScript)
  • mysql -> 达梦数据迁移(mbp大小写问题兼容)
  • Ubuntu | PostgreSQL | 解决 ERROR: `xmllint` is missing on your system.
  • 学习第六十四行
  • 创建一个Spring Boot项目
  • 使用PVE快速创建虚拟机集群并搭建docker环境
  • 安全运维管理 10.1环境管理
  • GPU算力平台|在GPU算力平台部署LLama3大模型的详细教程
  • system securiry: supervisor password required
  • 在 Visual Studio Code 中使用 qmake 构建和调试 Qt 项目
  • python调用window库全屏截图生成bmp位图学习
  • TrustRAG:增强RAG系统鲁棒性与可信度的创新框架
  • 儿童玩具加拿大SOR/2011-17测试安全标准
  • Transformer:深度学习的变革力量
  • ffmpeg 常用命令 案例
  • 【Uniapp-Vue3】在组件中通过props进行数据传递
  • Vue.js 组件开发:从基础到进阶