Go語言的單元測試方法是什么

本篇內(nèi)容主要講解“Go語言的單元測試方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Go語言的單元測試方法是什么”吧!

專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站建設(shè),高端網(wǎng)站制作設(shè)計(jì),重慶小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠服務(wù),采用H5建站+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站設(shè)計(jì),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動,隨時(shí)提供解決方案,暢聊想法和感受。

Go語言似乎是個(gè)偏執(zhí)狂,犧牲了不必要的靈活性,帶來一些強(qiáng)制的編程風(fēng)格和約定。比如:

無任何形式的Makefile,模塊就是目錄、包就是目錄、編譯配制就是目錄!

不光目錄被用上了,文件名還能指定用途。文件名后綴為_test.go的都是單元測試文件,_linux32.go就是32位linux特定的代碼。

不光文件名被用上了,函數(shù)名還有特定用途。在單元測試文件中,測試函數(shù)以Test開頭。以大寫字母開頭的變量、類型和函數(shù)是外部可見的,小寫字母開頭的變量、類型和函數(shù)是外部不可見的。

類似的約定也不好說是go語言首創(chuàng),在一些文件格式中也有類似規(guī)范。但是我暫時(shí)不知道到有什么其它編程語言對編程風(fēng)格這么帶強(qiáng)制性。

對于單元測試,假設(shè)有如下calc.go文件:

package calc

func Add(a,b int) int {
    return a+b 
}

func Max(a,b int) (ret int) {
    ret = a 
    if b > a { 
        ret = b 
    }   
    return
}

func Min(a,b int) (ret int) {
    ret = a 
    if b < a { 
        ret = b 
    }   
    return
}

有如下測試代碼calc_test.go:

package calc

import (
    "testing"
)
type calcTest struct {
    a,b,ret int
}

var addTests = []calcTest{
    calcTest{4,6,10},
    calcTest{5,6,11},
    calcTest{8,-10,-2},
}

func TestAdd(t *testing.T) {
    for _,v := range addTests {
        ret := Add(v.a,v.b)
        if ret != v.ret {
            t.Errorf("%d add %d,want %d,but get %d",v.a,v.b,v.ret,ret)
        }
    }

}

func TestMax(t *testing.T){
    a,b := 100,300
    ret := Max(a,b)
    if ret != b {
        t.Errorf("%d is bigger than %d",b,a)
    }
}

func TestMin(t *testing.T) {
    a,b := 100,300
    ret := Min(a,b)
    if ret != a {
        t.Errorf("%d is smaller than %d",a,b)
    }
}

執(zhí)行g(shù)o test 得到如下結(jié)果:

PASS
ok      _/home/liangdi/Desktop/test/go/testing    0.008
在calc.go中設(shè)計(jì)一個(gè)邏輯錯誤,把 func Min(a,b int) ret int 改為:
func Min(a,b int) (ret int) {
    ret = a 
    //邏輯錯誤
    if b > a { 
        ret = b 
    }   
    return
}

執(zhí)行g(shù)o test的結(jié)果為:

--- FAIL: TestMin (0.00 seconds)
    calc_test.go:38: 100 is smaller than 300
FAIL
exit status 1
FAIL    _/home/liangdi/Desktop/test/go/testing    0.005s

到此,相信大家對“Go語言的單元測試方法是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)頁題目:Go語言的單元測試方法是什么
文章出自:http://muchs.cn/article18/jpshgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、動態(tài)網(wǎng)站企業(yè)建站、電子商務(wù)、靜態(tài)網(wǎng)站、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)