日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

深入掌握Rust測(cè)試:從基礎(chǔ)用例到控制測(cè)試執(zhí)行的完全指南

來(lái)源: 責(zé)編: 時(shí)間:2024-04-08 17:18:05 169觀(guān)看
導(dǎo)讀Rust作為一門(mén)系統(tǒng)編程語(yǔ)言,其對(duì)可靠性的強(qiáng)調(diào)體現(xiàn)在多個(gè)方面,其中一個(gè)不可或缺的部分就是測(cè)試。Rust語(yǔ)言不僅自帶了強(qiáng)大的測(cè)試框架,而且在日常開(kāi)發(fā)過(guò)程中也鼓勵(lì)開(kāi)發(fā)者編寫(xiě)和運(yùn)行測(cè)試。在本文中,我們將詳細(xì)介紹如何在Rust中

Rust作為一門(mén)系統(tǒng)編程語(yǔ)言,其對(duì)可靠性的強(qiáng)調(diào)體現(xiàn)在多個(gè)方面,其中一個(gè)不可或缺的部分就是測(cè)試。Rust語(yǔ)言不僅自帶了強(qiáng)大的測(cè)試框架,而且在日常開(kāi)發(fā)過(guò)程中也鼓勵(lì)開(kāi)發(fā)者編寫(xiě)和運(yùn)行測(cè)試。在本文中,我們將詳細(xì)介紹如何在Rust中編寫(xiě)和控制測(cè)試,幫助您提高代碼質(zhì)量和穩(wěn)定性。tEe28資訊網(wǎng)——每日最新資訊28at.com

編寫(xiě)測(cè)試函數(shù)

當(dāng)使用Cargo創(chuàng)建lib類(lèi)別的Rust包時(shí),Cargo會(huì)為我們自動(dòng)生成測(cè)試模塊。下面是一個(gè)簡(jiǎn)單的測(cè)試?yán)樱?span style="display:none">tEe28資訊網(wǎng)——每日最新資訊28at.com

#[cfg(test)]mod tests {    #[test]    fn it_works() {        assert_eq!(2 + 2, 4);    }}

測(cè)試函數(shù)需要使用#[test]屬性進(jìn)行標(biāo)記。在測(cè)試函數(shù)中,使用assert_eq!宏來(lái)進(jìn)行結(jié)果斷言,從而驗(yàn)證被測(cè)試的代碼是否符合預(yù)期。tEe28資訊網(wǎng)——每日最新資訊28at.com

使用cargo test運(yùn)行測(cè)試

要運(yùn)行所有測(cè)試,只需在項(xiàng)目根目錄下運(yùn)行以下命令:tEe28資訊網(wǎng)——每日最新資訊28at.com

$ cargo test

當(dāng)測(cè)試用例較多時(shí),你可能希望只運(yùn)行部分測(cè)試或?qū)敵鼋Y(jié)果進(jìn)行特定的控制。這時(shí),你可以使用命令行參數(shù)來(lái)實(shí)現(xiàn)。tEe28資訊網(wǎng)——每日最新資訊28at.com

控制測(cè)試行為

控制測(cè)試的并發(fā)行為

默認(rèn)情況下,Rust以多線(xiàn)程的形式并行執(zhí)行各個(gè)測(cè)試用例,如果你想要改變測(cè)試執(zhí)行的并行程度,可以通過(guò)以下命令:tEe28資訊網(wǎng)——每日最新資訊28at.com

$ cargo test -- --test-threads=1

這里的--test-threads=1告訴測(cè)試程序以單線(xiàn)程執(zhí)行所有測(cè)試。tEe28資訊網(wǎng)——每日最新資訊28at.com

顯示測(cè)試函數(shù)中的輸出

如果你希望在測(cè)試成功時(shí)也能看到println!等宏的輸出內(nèi)容,你可以使用以下命令:tEe28資訊網(wǎng)——每日最新資訊28at.com

$ cargo test -- --show-output

運(yùn)行特定的測(cè)試

如果你只想運(yùn)行名稱(chēng)中包含指定關(guān)鍵字的測(cè)試用例,你可以通過(guò)名稱(chēng)來(lái)過(guò)濾測(cè)試:tEe28資訊網(wǎng)——每日最新資訊28at.com

$ cargo test add

上面的命令僅運(yùn)行名稱(chēng)中包含add字符串的測(cè)試用例。tEe28資訊網(wǎng)——每日最新資訊28at.com

處理panic的測(cè)試

在Rust中,我們還可以測(cè)試那些預(yù)期會(huì)發(fā)生panic的代碼。當(dāng)你的函數(shù)在某些條件下應(yīng)該觸發(fā)panic時(shí),這會(huì)非常有用:tEe28資訊網(wǎng)——每日最新資訊28at.com

#[cfg(test)]mod tests {    #[test]    #[should_panic]    fn test_panic() {        assert!(false, "This test should panic");    }}

通過(guò)使用#[should_panic]屬性,你可以指定一個(gè)測(cè)試函數(shù)應(yīng)當(dāng)觸發(fā)panic。tEe28資訊網(wǎng)——每日最新資訊28at.com

自定義panic信息

對(duì)于需要具體panic信息的情況,我們可以使用expected參數(shù),如下所示:tEe28資訊網(wǎng)——每日最新資訊28at.com

#[cfg(test)]mod tests {    #[test]    #[should_panic(expected = "specific error message")]    fn test_panic_with_message() {        panic!("specific error message");    }}

這樣你就可以指定期望觸發(fā)的具體panic信息。tEe28資訊網(wǎng)——每日最新資訊28at.com

使用Result<T, E>測(cè)試錯(cuò)誤

除了使用panic!進(jìn)行測(cè)試之外,你還可以返回Result<T, E>類(lèi)型來(lái)表示測(cè)試的成功或失敗:tEe28資訊網(wǎng)——每日最新資訊28at.com

#[cfg(test)]mod tests {    #[test]    fn test_result() -> Result<(), String> {        if 2 + 2 == 4 {            Ok(())        } else {            Err(String::from("two plus two does not equal four"))        }    }}

如果測(cè)試失敗,將返回一個(gè)包含錯(cuò)誤信息的Err值。tEe28資訊網(wǎng)——每日最新資訊28at.com

通過(guò)上述深入的講解和豐富的示例,相信你已經(jīng)對(duì)Rust中的測(cè)試有了較為全面的理解。現(xiàn)在,應(yīng)用這些知識(shí)點(diǎn)到你的Rust項(xiàng)目中,可以讓你的代碼更加穩(wěn)健,降低潛在的錯(cuò)誤和問(wèn)題。tEe28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-82032-0.html深入掌握Rust測(cè)試:從基礎(chǔ)用例到控制測(cè)試執(zhí)行的完全指南

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 聊一聊如何離線(xiàn)分析Redis緩存的空閑分布

下一篇: 分布式限流方案的探索與實(shí)踐

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 5月安卓手機(jī)好評(píng)榜:魅族20 Pro奪冠

    性能榜和性?xún)r(jià)比榜之后,我們來(lái)看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來(lái)源安兔兔評(píng)測(cè),收集時(shí)間2023年5月1日至5月31日,僅限國(guó)內(nèi)市場(chǎng)。第一名:魅族20 Pro好評(píng)率:97.50%不得不感慨魅族老品牌還
  • 消息稱(chēng)迪士尼要拍真人版《魔發(fā)奇緣》:女主可能也找黑人演員

    8月5日消息,迪士尼確實(shí)有點(diǎn)忙,忙著將不少動(dòng)畫(huà)改成真人版,繼《美人魚(yú)》后,真人版《白雪公主》、《魔發(fā)奇緣》也在路上了。據(jù)外媒消息稱(chēng),迪士尼將打造真人版
  • 2023 年的 Node.js 生態(tài)系統(tǒng)

    隨著技術(shù)的不斷演進(jìn)和創(chuàng)新,Node.js 在 2023 年達(dá)到了一個(gè)新的高度。Node.js 擁有一個(gè)龐大的生態(tài)系統(tǒng),可以幫助開(kāi)發(fā)人員更快地實(shí)現(xiàn)復(fù)雜的應(yīng)用。本文就來(lái)看看 Node.js 最新的生
  • 量化指標(biāo)是與非:挽救被量化指標(biāo)扼殺的技術(shù)團(tuán)隊(duì)

    作者 | 劉新翠整理 | 徐杰承本文整理自快狗打車(chē)技術(shù)總監(jiān)劉新翠在WOT2023大會(huì)上的主題分享,更多精彩內(nèi)容及現(xiàn)場(chǎng)PPT,請(qǐng)關(guān)注51CTO技術(shù)棧公眾號(hào),發(fā)消息【W(wǎng)OT2023PPT】即可直接領(lǐng)取
  • 之家push系統(tǒng)迭代之路

    前言在這個(gè)信息爆炸的互聯(lián)網(wǎng)時(shí)代,能夠及時(shí)準(zhǔn)確獲取信息是當(dāng)今社會(huì)要解決的關(guān)鍵問(wèn)題之一。隨著之家用戶(hù)體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動(dòng)拉"獲取信息的方式已不能滿(mǎn)足用
  • 破圈是B站頭上的緊箍咒

    來(lái)源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛(ài)奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 拼多多APP上線(xiàn)本地生活入口,群雄逐鹿萬(wàn)億市場(chǎng)

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨(dú)家獲悉,拼多多在其APP內(nèi)上線(xiàn)了&ldquo;本地生活&rdquo;入口,位置較深,位于首頁(yè)的&ldquo;充值中心&rdquo;內(nèi),目前主要售賣(mài)美食相關(guān)的
  • iQOO 11S新品發(fā)布會(huì)

    iQOO將在7月4日19:00舉行新品發(fā)布會(huì),推出杭州亞運(yùn)會(huì)電競(jìng)賽事官方用機(jī)iQOO 11S。
  • 華為舉行春季智慧辦公新品發(fā)布會(huì) 首次推出電子墨水屏平板

    北京時(shí)間2月27日晚,華為在巴塞羅那舉行春季智慧辦公新品發(fā)布會(huì),在海外市場(chǎng)推出之前已經(jīng)在中國(guó)市場(chǎng)上市的筆記本、平板、激光打印機(jī)等辦公產(chǎn)品,并首次推出搭載
Top 主站蜘蛛池模板: 铜梁县| 平和县| 金堂县| 堆龙德庆县| 金湖县| 古交市| 永登县| 子长县| 巴彦淖尔市| 铜梁县| 额尔古纳市| 潼南县| 宝清县| 扶风县| 德江县| 普格县| 虹口区| 塘沽区| 钟山县| 连云港市| 彰化县| 三门峡市| 多伦县| 武定县| 永和县| 虞城县| 宁城县| 缙云县| 龙陵县| 花莲市| 梨树县| 淅川县| 远安县| 水城县| 乐陵市| 奉贤区| 惠水县| 诸城市| 浮梁县| 调兵山市| 壶关县|