最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.介紹

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

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

2.函數(shù)

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

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

image-20220122105023440

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

3.1格式

3.2失敗示例

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

image-20220122112128564

image-20220122112228963

image-20220122112255426

注:執(zhí)行完go test后,結(jié)構(gòu)以及代碼內(nèi)容沒有任何變化
一個中文所占的字節(jié)在uf8中至少占用的都是3個字節(jié),甚至有的是4個字節(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,說明測試用例通過了

3.4成功示例2

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

image-20220122121513221

image-20220122121525297

image-20220122121422666

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

3.5成功示例3

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

image-20220122123445476

image-20220122123354842

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

3.6成功實例4

image-20220122123743256

image-20220122123729249

image-20220122134857121

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

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

4.1成功實例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)真正干活的進程數(shù),不同的電腦不一樣
1731301是指Spilt執(zhí)行的次數(shù)
629.1ns是指:每一次操作耗費629.1納秒

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

4.2成功實例2

image-20220122143112679

image-20220122143121749

image-20220122143159655

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

4.3性能比較函數(shù)

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

總結(jié) 

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

相關(guān)文章

  • 圖文詳解go語言反射實現(xiàn)原理

    圖文詳解go語言反射實現(xiàn)原理

    這篇文章主要介紹了圖文詳解go語言反射實現(xiàn)原理,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧,需要的朋友可以參考下
    2020-02-02
  • Golang文件讀寫操作詳情

    Golang文件讀寫操作詳情

    這篇文章主要介紹了Golang文件讀寫操作詳情,文件是數(shù)據(jù)源(保存數(shù)據(jù)的地方)的一種,文件最主要的作用就是保存數(shù)據(jù),文件在程序中是以流的形式來操作的,更多詳細內(nèi)容需要的朋友可以參考一下
    2022-07-07
  • 使用GO實現(xiàn)Paxos共識算法的方法

    使用GO實現(xiàn)Paxos共識算法的方法

    這篇文章主要介紹了使用GO實現(xiàn)Paxos共識算法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Golang中日志使用詳解

    Golang中日志使用詳解

    這篇文章記錄了Golang項目中日志使用,以及結(jié)合Gin框架記錄請求日志,文中通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Go排序算法通用qsort函數(shù)使用示例

    Go排序算法通用qsort函數(shù)使用示例

    這篇文章主要為大家介紹了Go排序算法通用qsort函數(shù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • go使用makefile腳本編譯應(yīng)用的方法小結(jié)

    go使用makefile腳本編譯應(yīng)用的方法小結(jié)

    makefile可以看作是make工具的腳本文件, 而make主要用來處理一系列命令。常用的比如用來編譯和打包文件, 在C/C++的編譯打包中應(yīng)用最廣泛了,這篇文章主要介紹了go使用makefile腳本編譯應(yīng)用,需要的朋友可以參考下
    2022-08-08
  • golang中拿slice當(dāng)queue和拿list當(dāng)queue使用分析

    golang中拿slice當(dāng)queue和拿list當(dāng)queue使用分析

    這篇文章主要為大家介紹了golang?中拿slice當(dāng)queue和拿list當(dāng)queue使用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Go語言學(xué)習(xí)筆記之錯誤和異常詳解

    Go語言學(xué)習(xí)筆記之錯誤和異常詳解

    Go語言采用返回值的形式來返回錯誤,這一機制既可以讓開發(fā)者真正理解錯誤處理的含義,也可以大大降低程序的復(fù)雜度,下面這篇文章主要給大家介紹了關(guān)于Go語言學(xué)習(xí)筆記之錯誤和異常的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Go語言中常見的坑以及高性能編程技巧分享

    Go語言中常見的坑以及高性能編程技巧分享

    代碼的穩(wěn)健性、高性能、可讀性是我們每一位coder必須去追求的目標(biāo),本文結(jié)合Go語言的特性做了相關(guān)總結(jié),感興趣的小伙伴可以了解一下
    2023-06-06
  • go NewTicker的用法示例代碼

    go NewTicker的用法示例代碼

    在 Go 語言中,time.NewTicker函數(shù)用于創(chuàng)建一個周期性觸發(fā)的定時器,這篇文章主要介紹了go NewTicker的使用,需要的朋友可以參考下
    2023-07-07

最新評論

邢台市| 拜泉县| 吐鲁番市| 本溪| 当阳市| 临清市| 八宿县| 安吉县| 体育| 多伦县| 南乐县| 安陆市| 景泰县| 宽甸| 宁明县| 凌云县| 郴州市| 武城县| 临泉县| 如皋市| 临猗县| SHOW| 靖远县| 郧西县| 南靖县| 额济纳旗| 乌苏市| 许昌县| 工布江达县| 桓台县| 漾濞| 延寿县| 洞头县| 金湖县| 永丰县| 滦南县| 镇坪县| 鄂托克旗| 苍溪县| 兴海县| 娱乐|