欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GoLang基礎(chǔ)學(xué)習(xí)之go?test測(cè)試

 更新時(shí)間:2022年08月09日 11:11:15   作者:GoGo在努力  
相信每位編程開發(fā)者們應(yīng)該都知道,Golang作為一門標(biāo)榜工程化的語言,提供了非常簡(jiǎn)便、實(shí)用的編寫單元測(cè)試的能力,下面這篇文章主要給大家介紹了關(guān)于GoLang基礎(chǔ)學(xué)習(xí)之go?test測(cè)試的相關(guān)資料,需要的朋友可以參考下

1.介紹

Go語言中的測(cè)試依賴go test命令。編寫測(cè)試代碼和編寫普通的Go代碼過程是類似的,并不需要學(xué)習(xí)新的語法、規(guī)則或工具; go test 命令是go語言內(nèi)置的命令

go test命令是一個(gè)按照一定約定和組織的測(cè)試代碼的驅(qū)動(dòng)程序
在我們執(zhí)行了go tets命令之后,這個(gè)命令會(huì)自動(dòng)的幫我們尋找當(dāng)前包下面在包目錄內(nèi)以_test.go為后綴名的源代碼文件進(jìn)行測(cè)試,同時(shí)解析內(nèi)部所有以大寫的Test開頭的測(cè)試函數(shù)(注:不會(huì)被go build編譯到最終的可執(zhí)行文件中)

2.函數(shù)

邏輯行為:比如舉一些特例,來檢查是否達(dá)到預(yù)期值

性能基準(zhǔn)測(cè)試相當(dāng)于調(diào)用10萬次或者1萬次,看看它的平均的執(zhí)行時(shí)間、內(nèi)存的是申請(qǐng)、內(nèi)存的消耗等等

image-20220122105023440

3.測(cè)試函數(shù)格式

3.1格式

3.2失敗示例

如下結(jié)構(gòu)以及代碼內(nèi)容

image-20220122112128564

image-20220122112228963

image-20220122112255426

注:執(zhí)行完go test后,結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化
一個(gè)中文所占的字節(jié)在uf8中至少占用的都是3個(gè)字節(jié),甚至有的是4個(gè)字節(jié),問題出現(xiàn)在:s = s[i+1:]這一行

3.3成功示例1

如下結(jié)構(gòu)以及代碼內(nèi)容

image-20220122112805489

image-20220122112821945

image-20220122112939784

注:執(zhí)行完命令后結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化
go test:
顯示pass,說明測(cè)試用例通過了

3.4成功示例2

如下結(jié)構(gòu)以及代碼內(nèi)容

image-20220122121513221

image-20220122121525297

image-20220122121422666

注:執(zhí)行完命令后結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化
顯示pass,說明測(cè)試用例通過了

3.5成功示例3

如果有多個(gè)測(cè)試用例的話,可以寫成一個(gè)測(cè)試組,測(cè)試組里可以定義一個(gè)測(cè)試用例的結(jié)構(gòu)體,然后分別的創(chuàng)建多個(gè)測(cè)試用例的結(jié)構(gòu)體實(shí)例,然后寫一個(gè)for循環(huán)去跑一下這個(gè)測(cè)試用例

image-20220122123445476

image-20220122123354842

注:執(zhí)行完命令后結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化
go test
go test -v:
可以查看的更詳細(xì)

3.6成功實(shí)例4

image-20220122123743256

image-20220122123729249

image-20220122134857121

注:執(zhí)行完命令后結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化
用t.run的話,里面?zhèn)魅胍粋€(gè)匿名函數(shù)的話,go test -v可以看的更清晰
go test -run=Split/chinese的換可以指定某個(gè)測(cè)試用例單獨(dú)測(cè)試
go test -cover校驗(yàn)測(cè)試覆蓋率(即比如我們的測(cè)試函數(shù)有6行代碼,如果我們的測(cè)試用例把這6行代碼都執(zhí)行了,那么這是最好的了,覆蓋率是100%,現(xiàn)實(shí)情況下很少有100%的情況,測(cè)試覆蓋率基本上就足夠了,

4.基準(zhǔn)函數(shù)

4.1成功實(shí)例1

image-20220122142327030

image-20220122142349050

image-20220122141630263

image-20220122141922244

注:執(zhí)行完命令后結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化

go test -bench=Split :(注意:所有的數(shù)據(jù)不同的電腦都不一樣)
BenchmarkSplit-16:  -16是操作系統(tǒng)真正干活的進(jìn)程數(shù),不同的電腦不一樣
1731301是指Spilt執(zhí)行的次數(shù)
629.1ns是指:每一次操作耗費(fèi)629.1納秒

go test -bench=Split -benchmem:   (注意:所有的數(shù)據(jù)不同的電腦都不一樣)
查看操作的內(nèi)存的數(shù)據(jù)
112 B/op: 每一次操作消耗的是112個(gè)字節(jié)
3 allocs/op : 每一次操作它會(huì)做三次的內(nèi)存申請(qǐng)(通過看這個(gè)就可以來做代碼優(yōu)化,由測(cè)試來不斷優(yōu)化我們的程序),查看代碼后發(fā)現(xiàn)原因是append會(huì)進(jìn)行內(nèi)存申請(qǐng),現(xiàn)在的解決辦法就是用make函數(shù)被做統(tǒng)一的內(nèi)存申請(qǐng)

4.2成功實(shí)例2

image-20220122143112679

image-20220122143121749

image-20220122143159655

go test -bench=Split -benchmem:  (注意:所有的數(shù)據(jù)不同的電腦都不一樣)
發(fā)現(xiàn)各個(gè)數(shù)據(jù)都減少了

4.3性能比較函數(shù)

應(yīng)用場(chǎng)景:某些函數(shù)當(dāng)我們傳入的參數(shù)變量不一樣的話,執(zhí)行的次數(shù)也不一樣,這種情景就可以用性能比較函數(shù),比如

總結(jié) 

到此這篇關(guān)于GoLang基礎(chǔ)學(xué)習(xí)之go test測(cè)試的文章就介紹到這了,更多相關(guān)GoLang go test測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言map實(shí)現(xiàn)順序讀取

    Go語言map實(shí)現(xiàn)順序讀取

    當(dāng)我們遍歷 map 時(shí),那就是輸出的鍵值對(duì)順序是不確定的,本文主要介紹了Go語言map實(shí)現(xiàn)順序讀取, 文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Golang中urlencode與urldecode編碼解碼詳解

    Golang中urlencode與urldecode編碼解碼詳解

    這篇文章主要給大家介紹了關(guān)于Golang中urlencode與urldecode編碼解碼的相關(guān)資料,在Go語言中轉(zhuǎn)碼操作非常方便,可以使用內(nèi)置的encoding包來快速完成轉(zhuǎn)碼操作,Go語言中的encoding包提供了許多常用的編碼解碼方式,需要的朋友可以參考下
    2023-09-09
  • 詳解Go module的介紹及使用

    詳解Go module的介紹及使用

    module是一個(gè)相關(guān)Go包的集合,它是源代碼更替和版本控制的單元。這篇文章主要介紹了Go module的介紹及使用,需要的朋友可以參考下
    2020-10-10
  • Golang并發(fā)讀取文件數(shù)據(jù)并寫入數(shù)據(jù)庫的項(xiàng)目實(shí)踐

    Golang并發(fā)讀取文件數(shù)據(jù)并寫入數(shù)據(jù)庫的項(xiàng)目實(shí)踐

    本文主要介紹了Golang并發(fā)讀取文件數(shù)據(jù)并寫入數(shù)據(jù)庫的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 一文帶你探索Golang計(jì)時(shí)器的奧秘

    一文帶你探索Golang計(jì)時(shí)器的奧秘

    在?Golang?中,計(jì)時(shí)器(timer)是一種常見的工具,用于定期執(zhí)行某個(gè)任務(wù)或者在指定時(shí)間后觸發(fā)某個(gè)事件。本文將深入探討?Golang?計(jì)時(shí)器的實(shí)現(xiàn)原理和使用方法,幫助大家更好地理解和應(yīng)用計(jì)時(shí)器
    2023-05-05
  • 詳解Go語言中調(diào)度器的原理與使用

    詳解Go語言中調(diào)度器的原理與使用

    這篇文章主要介紹了Go語言運(yùn)行時(shí)調(diào)度器的實(shí)現(xiàn)原理,其中包含調(diào)度器的設(shè)計(jì)與實(shí)現(xiàn)原理、演變過程以及與運(yùn)行時(shí)調(diào)度相關(guān)的數(shù)據(jù)結(jié)構(gòu),希望對(duì)大家有所幫助
    2023-07-07
  • Golang Defer作用域及執(zhí)行順序使用案例

    Golang Defer作用域及執(zhí)行順序使用案例

    這篇文章主要為大家介紹了Golang Defer作用域及執(zhí)行順序使用案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • go語言獲取系統(tǒng)盤符的方法

    go語言獲取系統(tǒng)盤符的方法

    這篇文章主要介紹了go語言獲取系統(tǒng)盤符的方法,涉及Go語言調(diào)用winapi獲取系統(tǒng)硬件信息的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • go redis之redigo的使用

    go redis之redigo的使用

    本文主要介紹了go redis之redigo的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Golang中crypto/ecdsa庫實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證

    Golang中crypto/ecdsa庫實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證

    本文主要介紹了Golang中crypto/ecdsa庫實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證,將從ECDSA的基本原理出發(fā),詳細(xì)解析如何在Go語言中實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論