欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

          單元測(cè)試,是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證

          單元就是人為規(guī)定的最小的被測(cè)功能模塊

          一般來(lái)說(shuō),要根據(jù)實(shí)際情況去判定其具體含義,如 C 語(yǔ)言中單元指一個(gè)函數(shù),Go 里面也單元也是一個(gè)函數(shù)

          單元測(cè)試是在軟件開(kāi)發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。

          單元測(cè)試,咱們平時(shí)也叫它單測(cè),平時(shí)開(kāi)發(fā)的時(shí)候,也需要寫(xiě)一些 demo 來(lái)測(cè)試我們的項(xiàng)目中的函數(shù)或者某個(gè)小功能【推薦:golang教程】

          go test 單元測(cè)試

          GO 語(yǔ)言里面的單元測(cè)試,是使用標(biāo)準(zhǔn)庫(kù) testing

          有如下簡(jiǎn)單規(guī)則:

          • 導(dǎo)入 test 標(biāo)準(zhǔn)庫(kù)
          • 單測(cè)文件名,后面跟上_test
          • 單測(cè)文件中的函數(shù)名為 Test開(kāi)頭,且參數(shù)必須是 t *testing.T

          簡(jiǎn)單例子:

          寫(xiě)一個(gè)簡(jiǎn)單的例子,添加后綴和前綴

          .├── cal.go ├── cal_test.go ├── lll └── sub.go
          登錄后復(fù)制

          cal.go

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

          cal_test.go

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

          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}
          登錄后復(fù)制

          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)}
          登錄后復(fù)制

          執(zhí)行單元測(cè)試

          go test -v
          登錄后復(fù)制

          • -v

          -v 是參數(shù)會(huì)顯示每個(gè)用例的測(cè)試結(jié)果,顯示執(zhí)行的單測(cè)函數(shù),是否通過(guò)以及單測(cè)的時(shí)候

          運(yùn)行結(jié)果如下

          === 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
          登錄后復(fù)制

          在包目錄下執(zhí)行 go test ,會(huì)執(zhí)行包里面所有的單元測(cè)試文件

          只運(yùn)行指定的單測(cè)函數(shù)

          咱們可以這樣用:

          go test -run TestMyAdd -v

          結(jié)果如下:

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

          子測(cè)試

          就是在我們寫(xiě)的單測(cè)函數(shù)中,調(diào)用 testing 包里的 Run 方法,跑子測(cè)試

          咱們改造一下上述的 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 ")                 }         })}
          登錄后復(fù)制

          單獨(dú)調(diào)用子測(cè)試函數(shù),執(zhí)行 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
          登錄后復(fù)制

          生成報(bào)告,計(jì)算覆蓋率

          • 生成覆蓋率報(bào)告文件

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

          • 使用 go tool 轉(zhuǎn)成 html 格式

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

          在瀏覽器中打開(kāi) html 文件,可以查看到如下報(bào)告

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

          UNI-APP開(kāi)發(fā)(仿餓了么)開(kāi)發(fā)課程:進(jìn)入學(xué)習(xí)

          圖中綠色的部分是已覆蓋,紅色的部分是未覆蓋,咱們的例子已經(jīng)全部覆蓋具體的函數(shù)功能

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

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

          很多公司都開(kāi)始搞效能了,單測(cè),自動(dòng)化測(cè)試,CI/CD 都是要趕緊搞起來(lái)的,最好是做成一鍵發(fā)布一鍵回滾的。羨慕這些基礎(chǔ)設(shè)置都非常完善的地方,哈哈哈~

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)