成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

一文搞懂GO中的單元測試(unit testing)

單元測試,是指對軟件中的最小可測試單元進行檢查和驗證

單元就是人為規定的最小的被測功能模塊

一般來說,要根據實際情況去判定其具體含義,如 C 語言中單元指一個函數,Go 里面也單元也是一個函數

單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。

單元測試,咱們平時也叫它單測,平時開發的時候,也需要寫一些 demo 來測試我們的項目中的函數或者某個小功能【推薦:golang教程】

go test 單元測試

GO 語言里面的單元測試,是使用標準庫 testing

有如下簡單規則:

  • 導入 test 標準庫
  • 單測文件名,后面跟上_test
  • 單測文件中的函數名為 Test開頭,且參數必須是 t *testing.T

簡單例子:

寫一個簡單的例子,添加后綴和前綴

.├── cal.go ├── cal_test.go ├── lll └── sub.go
登錄后復制

cal.go

package mainfunc Addprefix(str string) string {      return "hello_"+str}func Addsuffix(str string) string {      return str+"_good"}
登錄后復制

cal_test.go

package mainimport "testing"func TestAddprefix(t *testing.T) {         Addprefix("xiaomotong")}func TestAddsuffix(t *testing.T) {         Addsuffix("xiaomotong")}
登錄后復制

sub.go

package mainfunc MyAdd(a int, b int) int  {      if a+b > 10{         return 10     }      return a+b}func MySub(one int, two int) int{      if one - two < 0{         return 1     }      return one - two}
登錄后復制

sub_test.go

package mainimport "testing"import "fmt"func TestMyAdd(t *testing.T) {     num := MyAdd(4 ,9)     fmt.Println(num)      num = MyAdd(4 ,2)     fmt.Println(num)}
登錄后復制

執行單元測試

go test -v
登錄后復制

  • -v

-v 是參數會顯示每個用例的測試結果,顯示執行的單測函數,是否通過以及單測的時候

運行結果如下

=== RUN   TestAddprefix --- PASS: TestAddprefix (0.00s)=== RUN   TestAddsuffix --- PASS: TestAddsuffix (0.00s)=== RUN   TestMyAdd 10 6 --- PASS: TestMyAdd (0.00s)PASS ok      my_new_first/golang_study/later_learning/gotest 0.002s
登錄后復制

在包目錄下執行 go test ,會執行包里面所有的單元測試文件

只運行指定的單測函數

咱們可以這樣用:

go test -run TestMyAdd -v

結果如下:

=== RUN   TestMyAdd 10 6 --- PASS: TestMyAdd (0.00s)PASS ok      my_new_first/golang_study/later_learning/gotest 0.002s
登錄后復制

子測試

就是在我們寫的單測函數中,調用 testing 包里的 Run 方法,跑子測試

咱們改造一下上述的 sub_test.go

package mainimport "testing"import "fmt"func TestMyAdd(t *testing.T) {     num := MyAdd(4 ,9)     fmt.Println(num)      num = MyAdd(4 ,2)     fmt.Println(num)}func TestMySub(t *testing.T) {         t.Run("one", func(t *testing.T) {                 if MySub(2, 3) != 1 {                         t.Fatal("cal error")                 }          })         t.Run("two", func(t *testing.T) {                 if MySub(3, 1) != 2 {                         t.Fatal(" error ")                 }         })}
登錄后復制

單獨調用子測試函數,執行 go test -run TestMySub/one -v

=== RUN   TestMySub=== RUN   TestMySub/one --- PASS: TestMySub (0.00s)     --- PASS: TestMySub/one (0.00s)PASS ok      my_new_first/golang_study/later_learning/gotest 0.003s
登錄后復制

生成報告,計算覆蓋率

  • 生成覆蓋率報告文件

go test -v -covermode=count -coverprofile=cover.out

  • 使用 go tool 轉成 html 格式

go tool cover -html=cover.out -o cover.html

在瀏覽器中打開 html 文件,可以查看到如下報告

一文搞懂GO中的單元測試(unit testing)

UNI-APP開發(仿餓了么)開發課程:進入學習

圖中綠色的部分是已覆蓋,紅色的部分是未覆蓋,咱們的例子已經全部覆蓋具體的函數功能

go test 后面的指令,咱們也可以看幫助文檔

一文搞懂GO中的單元測試(unit testing)

很多公司都開始搞效能了,單測,自動化測試,CI/CD 都是要趕緊搞起來的,最好是做成一鍵發布一鍵回滾的。羨慕這些基礎設置都非常完善的地方,哈哈哈~

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲国产成人久久精品APP| 亚洲AV无码国产精品久久不卡| 久久精品99国产AV精品蜜桃| 亚洲色大成网站WWW尤物| 偷拍精品视频一区二区三区| 欧美最爽的乱婬视频婬色视频| 久久久久久亚洲AV成人无码国产 | 成人无码黄动漫在线播放| 337P粉嫩日本欧洲亚洲大胆艺| 亚洲人成无码区在线观看| 亚洲AV成人片乱码色午夜| 四川少妇BBW搡BBBB槡BB| 琪琪午夜伦埋影院77| 男人激烈吮乳吃奶到高潮视频 | 亚洲欧美日韩久久精品| 亚洲AV成人深夜一区午夜网站 | 国产午夜鲁丝片AV无码免费| 国产边做饭边被躁在线小说| 成年女人毛片视频免费| FREEXX性黑人大战欧美| 98在线视频噜噜噜国产| 中文字幕人成无码人妻| 曰本BBWW高潮BBWR| 幼儿稀缺区超清幼儿做的网站| BGMBGMBGM老妇60岁| 99RE免费99RE在线视频| 国产99久久精品一区二区| 都市 亚洲 自拍 小说 校园| 成人亚洲AV网站在线看AAAA| 国产日产精品_国产精品毛片| 国产女人被狂躁到高潮小说 | 人妻中文字系列无码专区| 欧美一区二区三放荡人妇| 婷婷五月综合激情| 夜夜澡天天碰人人爱AV| 亚洲婷婷五月综合狠狠| 亚洲无人区码二码三码区别图| JAPANESEHD国产在线看| 国产日韩一区二区三区在线观看| 美国ZOOM人与ZOOM视频| 蜜桃色欲AV久久无码精品软件| 美女扒开腿让男人桶爽揉| 少妇人妻88久久中文字幕| 天天做天天忝天天噜| 夜夜夜夜猛噜噜噜噜噜试看| 粗大挺进亲女H顾晓晓| 国产成 人 在线观看 亚洲| 久久精品亚洲精品无码白云TV| 两个领导在车里吃我奶| 免费中国最大但人文艺术| 欧美人与禽ZOZ0性伦交| 日本经典片免费看| 色欲香天天天综合网站小说| 无码人妻少妇色欲AV一区二区| 亚洲成A∨人片在线观看不卡| 亚洲一区二区三区高清AV| 波多野结衣一二三区AV高清| 国产AV无码专区亚汌A√| 国产又粗又猛又爽又黄的视频在线 | 国产精品免费视频网站| 黑人巨大VS苍井空| 老赵抱着月月在厨房做视频| 玩弄人妻热妇性色Av少妇| 亚洲AV无码国产精品色午友情链| 99久久婷婷国产综合精品| 高H禁伦餐桌上的肉伦| 国产未成女一区二区三区| 精品国产成人国产在线观看| 乱中年女人伦AV二区| 人人人人人人一摸| 无遮挡粉嫩小泬久久久久久软件| 亚洲欧洲日产国码无码| 动漫人物桶动漫人物免费观看网站 | 女人什么姿势下面最紧| 日日噜噜噜夜夜爽爽狠狠| 午夜亚洲精品久久久久久 | 被CAO的奶水直喷高H| 国产交换配乱婬视频| 精品人妻伦一二三区久久| 男人J桶进女人J无遮挡| 亚洲AV无码一区二区三区久久精| 又硬又粗又长又爽免费看| 国产欧美一区二区精品性色| 人妻天天爽夜夜爽精品视频| 在线播放人成视频观看| 成人用品有限公司| 免费A级毛片出奶水| 色婷婷五月综合丁香中文字幕| 亚洲AV无码乱码在线观看| 纯净模式怎么关闭| 欧美成人伊人久久综合网| 无码专区亚洲综合另类| 岳胀耸的雪乳奶水| 狠狠色综合久久丁香婷婷| 熟妇无码乱子成人精品| FREEXXXPORN中国女人| 米奇777四色精品人人爽| 亚洲色大成网站WWW永久网站| 国产啪亚洲国产精品无码| 熟妇的滚烫的肉唇翻进翻出| 伊人久久大香线蕉综合AV| 夫妇交换聚会群4P疯狂大战视频| 女主被强迫侵犯H文| 月光影院在线观看免费直播| 久9视频这里只有精品试看| 日韩日韩日韩日韩日韩| 亚洲婷婷五月综合狠狠| 激情内射日本一区二区三区| 人妻少妇精品无码专区芭乐视网| 亚洲V欧美V日韩V国产V| 宝贝这里没人给我好吗| 内射到高潮的H小说| 羞羞午夜爽爽爽爱爱爱爱人人人| 777成了乱人视频| 好男人在线观看视频| 日韩乱妇乱女熟妇熟女AV| А天堂中文地址在线| 久久精品无码一区二区小草| 亚洲成AV人片无码不卡| 好大好湿好硬顶到了好爽视频| 香蕉免费一区二区三区| 国产男男GAY做受ⅩXX软件| 欧洲女RAPPER潮水大豆| AV成人无码无在线观看| 久久99老妇伦国产熟女高清| 天堂资源官网在线资源| HD女人奶水授乳MILK| 欧美三级不卡在线观看| 亚洲中文字幕久久久一区| 国产精品美女久久久免费| 人妻无码精品久久亚瑟影视| XXXXX69HD护士19老师| 久久青草费线频观看| 亚洲AV成人精品午夜一区二区| 国产熟女乱子视频正在播放| 亚洲AV成人无码影视网| 黑人GAY大长雕TUBE| 亚洲女同成AV人片在线观看| 国产成人精品无码A区在线观看| 少妇爆乳无码专区网站| 国产成人一区二区三区影院| 无套内谢孕妇毛片免费看看| 国外免费IPHONE网站| 首页 动漫 亚洲 欧美 日韩| 国产成人亚洲欧美二区综合| 日本极品白嫩ASSPICS| 成人A级毛片免费观看AV网站 | 国产成人综合亚洲AV| 亚洲A∨国产AV综合AV麻豆丫| 黑人上司与人妻激烈中文字幕 | 女厕厕露P撒尿八个少妇| がーるずらっしゅ在线中文 | 内射射满骚B含着小说| 被公牛日到了高潮| 图片区小说区激情区偷拍区| 国产午夜鲁丝片AV无码免费| 亚洲一码二码三码区别在哪| 男女一起差差差差差| 成·人免费午夜无码区| 男女一起差差差差差| 草草浮力院禁止18进入| 调教小SAO货撅起打屁股作文| 黑人大雞巴XXOO视频| 又紧又大又爽精品一区二区 | 亚洲AV乱码VA国产AV22| 国产精品青青在线麻豆| 亚洲国产精品无码中文字视| 国语对白做受XXXXX在线中国| 野花韩国高清免费神马| 久久国内精品一区二区三区| 中文无码一区二区视频在线播放量 | 办公室的秘密2中文字幕| 无码中文字幕AⅤ精品影| 精品久久久久久久国产潘金莲| 337P日本欧洲亚洲大胆69影| 日本乱熟人妻精品乱码涩爱| 国产天堂AV手机在线| 又粗又黄又猛又爽大片APP | 亚洲欧美日韩二三区在线| 欧美黑人暴力深喉囗交| 2021国内精品久久久久精品K| 日韩毛片AV无码免费一区二区三| 国产美女精品自在线拍免费| 曰本熟妇色XXXXX曰本妇| 日本少妇人妻XXXXX18免费| 超清纯白嫩大学生无码网站| 无码少妇一区二区三区| 乱码一卡二卡新区永久入口| 丰满人妻熟妇乱又伦精品APP| 少妇激情AV一区二区三区| 精品国产AV色欲果冻传媒| CHINA熟妇老熟女HD| 性FREE毛茸茸VIDEOS| 韩国V欧美V亚洲V日本| √天堂中文最新版在线中文| 精品无人区一区二区三区在线| 亚洲一区二区三区成人片在线观看 | 果冻传媒播放观看免费| H工口全彩里番库18禁无遮挡| 亚洲AV无码AV制服丝袜在线|