【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.pswp.cn/web/65552.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65552.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65552.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【HTML+CSS+JS+VUE】web前端教程-16-HTML5新增標簽

擴展知識 div容器元素,也是頁面中見到的最多的元素 div實現

python學習筆記—16—數據容器之元組

1. 元組——tuple(元組是一個只讀的list) (1) 元組的定義注意&#xff1a;定義單個元素的元組&#xff0c;在元素后面要加上 , (2) 元組也支持嵌套 (3) 下標索引取出元素 (4) 元組的相關操作 1. index——查看元組中某個元素在元組中的位置從左到右第一次出現的位置 t1 (&qu…

設計模式-結構型-橋接模式

1. 什么是橋接模式&#xff1f; 橋接模式&#xff08;Bridge Pattern&#xff09; 是一種結構型設計模式&#xff0c;它旨在將抽象部分與實現部分分離&#xff0c;使它們可以獨立變化。通過這種方式&#xff0c;系統可以在抽象和實現兩方面進行擴展&#xff0c;而無需相互影響…

Linux 虛擬機與windows主機之間的文件傳輸--設置共享文件夾方式

Linux 虛擬機與windows主機之間的文件傳輸 設置共享文件夾方式 在虛擬機中打開終端查看是否已經新建完成&#xff0c;到文件夾中找到它看一下&#xff0c;這個位置就能存儲東西啦

關于linux網橋(Linux Bridge)的一些個人記錄

文章目錄 1. Linux Bridge簡述2. 網橋創建創建配置持久化在Debian/Ubuntu系統上&#xff1a;在CentOS/RHEL系統上&#xff1a; 啟用和驗證 3. 關于linux網橋不轉發ip幀的問題原因解決配置持久化 4. 查看網橋學習交換表手動添加或刪除條目添加條目刪除條目 配置靜態條目設置條目…

期末概率論總結提綱(僅適用于本校,看文中說明)

文章目錄 說明A選擇題1.硬幣2.兩個事件的關系 與或非3.概率和為14.概率密度 均勻分布5.聯合分布率求未知參數6.聯合分布率求未知參數7.什么是統計量&#xff08;記憶即可&#xff09;8.矩估計量9.117頁12題10.顯著水平阿爾法&#xff08;背公式就完了&#xff09; 判斷題11.事件…

Inno Setup制作安裝包,安裝給win加環境變量

加 ; 加環境變量&#xff0c;開啟&#xff0c;下面一行 ChangesEnvironmentyes 和 ; 加環境變量wbrj變量名&#xff0c;{app}\project\bin變量值&#xff0c;{app}\后接文件名&#xff0c;{app}表示安裝路徑。下面一行,{olddata};原來的值上拼接 Root: HKLM; Subkey: “SYSTEM\…

Golang學習筆記_23——error補充

Golang學習筆記_20——error Golang學習筆記_21——Reader Golang學習筆記_22——Reader示例 文章目錄 error補充1. 基本錯誤處理2. 自定義錯誤3. 錯誤類型判斷3.1 類型斷言3.2 類型選擇 4. panic && recover 源碼 error補充 1. 基本錯誤處理 在Go中&#xff0c;函數…

Python中的asyncio:高效的異步編程模型

隨著互聯網應用的快速發展&#xff0c;程序的響應性和處理效率成為衡量系統性能的重要指標。傳統的同步編程模型在面對高并發和IO密集型任務時&#xff0c;常常顯得捉襟見肘&#xff0c;難以滿足現代應用的需求。Python的asyncio庫作為一種高效的異步編程模型&#xff0c;為開發…

JavaScript -- 數組詳解(使用頻率高)【數組專題】

文章目錄 前言一、創建數組1.1 使用Array構造函數1.2 使用數組字面量表示法1.3 ES6語法轉換數組1.3.1 from( )用于將類數組結構轉換為數組實例1.3.2 of( )用于將一組參數轉換為數組實例 二、數組常用方法2.1 復制和填充2.1.1 copyWithin( )2.1.2 fill( ) 2.2 數組轉換2.2.1 toS…

操作系統之文件系統的基本概念

目錄 用戶和磁盤視角的文件 文件控制塊&#xff08;FCB&#xff09;和索引結點&#xff08;inode&#xff09; 文件的操作 創建文件&#xff08;create系統調用&#xff09; 寫文件&#xff08;write系統調用&#xff09; 讀文件&#xff08;read系統調用&#xff09; 重…

如何制作一份出色的公司介紹PPT?

制作一份公司介紹的PPT需要精心設計&#xff0c;以確保內容既專業又吸引人。以下是一個基本的框架和一些建議&#xff0c;幫助您創建一份有效的公司介紹PPT&#xff1a; PPT標題頁 標題&#xff1a;公司全稱&#xff08;可使用公司Logo作為背景或嵌入標題中&#xff09;副標題…

springboot項目部署至linux

1.修改pom.xml 確認是否有以下代碼&#xff0c;沒有請進行添加&#xff0c;mainClass改成你的啟動類 <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.ve…

vue.js 使用router-link替代a標簽實現高亮

在Vue.js中&#xff0c;可以使用<router-link>組件來替代<a>標簽實現高亮效果。<router-link>是Vue-Router提供的組件&#xff0c;用于路由導航。 首先&#xff0c;需要在Vue項目中安裝Vue-Router。可以使用以下命令安裝&#xff1a; npm install vue-rout…

FPGA隨記——時鐘時序一些基本知識

原文鏈接&#xff1a;跨時鐘域設計-CSDN博客 前言 CDC&#xff08;clock domain crossing&#xff09;檢查&#xff08;跨時鐘域的檢查&#xff09;是對電路設計中同步電路設計的檢查。非同步時鐘沒有固定的相位關系&#xff0c;這樣Setup/Hold不滿足而產生了亞穩態是無法避免…

實例解析網絡釣魚攻擊的幕后

網絡釣魚是通過大量發送聲稱來自于銀行或其他知名機構的欺騙性垃圾郵件&#xff0c;意圖引誘收信人給出敏感信息&#xff08;如用戶名、口令、帳號ID、ATM PIN碼或信用卡詳細信息&#xff09;的一種攻擊方式。最典型的網絡釣魚攻擊將收信人引誘到一個通過精心設計與目標組織的網…

STM32+WIFI獲取網絡時間+8位數碼管顯示+0.96OLED顯

資料下載地址&#xff1a;STM32WIFI獲取網絡時間8位數碼管顯示0.96OLED 1、項目介紹 主控芯片STM32C8T6 接線&#xff1a;串口1&#xff1a;PA9 PA10 OELD &#xff1a;PB6 PB7 數碼管使用&#xff1a;MAX7219 8位數碼管 Max7219_pinCLK PAout(5) Max7219_pinC…

1688平臺商品關鍵詞搜索的多樣性與Python爬蟲應用實踐

在當今這個信息化、數字化飛速發展的時代&#xff0c;電子商務平臺已經成為人們日常生活中不可或缺的一部分。而1688作為國內知名的B2B電商平臺&#xff0c;憑借其龐大的商品種類和豐富的供應鏈資源&#xff0c;為無數商家和消費者提供了便捷的交易渠道。除了廣受關注的女裝品類…

記錄將springboot的jar包和lib分離,使用docker-compose部署

本文講訴如何把jar里的lib依賴包獨立出來&#xff0c;方便更新服務時&#xff0c;縮小jar的體積&#xff0c;下面以若依的system服務為例&#xff0c;配置中的路徑請酌情修改&#xff0c;主要提供大致配置邏輯 第一步&#xff1a;修改項目的pom.xml&#xff0c;調整build的配…

如何解決Redis中的熱點key問題

Redis中的熱點Key問題是指某些特定的Key被頻繁訪問&#xff0c;導致Redis中某個節點&#xff08;或實例&#xff09;承擔過高的壓力&#xff0c;可能引發性能瓶頸&#xff0c;甚至若緩存承受不住服務壓力掛掉后&#xff0c;仍有大量請求時直接打到DB上&#xff0c;由于DB層相對…