go語言函數(shù)測試

go語言測試方法

測試split

package split

import "strings"

func Split(s, seq string) (result []string) {
    i := strings.Index(s, seq)
    for i>-1 {
        result = append(result, s[:i])
        s = s[i+len(seq):]
        //s = s[i+1:]
        i = strings.Index(s, seq)
    }
    result = append(result, s)
    return result
}

編寫的測試函數(shù)

package split

import (
    "reflect"
    "testing"
)

//測試切片為長度為1的字符串時(shí)
func TestSplit(t *testing.T) {
    got := Split("a:b:c",":")
    want := []string{"a", "b", "c"}
    if !reflect.DeepEqual(got,want) {
        t.Errorf("go= %v, want= %v", got, want)
    }
}

//測試長度大于1的字符串切片
func TestMoreSplit(t *testing.T) {
    got := Split("abcd", "bc")
    want := []string{"a","d"}
    if !reflect.DeepEqual(got, want) {
        t.Errorf("got= %v, want= %v", got, want)
    }
}

//組合測試双泪,多組測試
func TestSplitM(t *testing.T) {
    //定義測試用的結(jié)構(gòu)體
    type test struct {
        input string
        seq string
        want []string
    }
    //測試用例使用Map進(jìn)行存儲
    tests := []test{
        {"a:b:c:d",":",[]string{"a","b","c","d"}},
        {"a:b:c",",",[]string{"a:b:c"}},
        {"abcd","bc",[]string{"a","d"}},
        {"我愛你","愛",[]string{"我","你"}},
    }
    //使用range循環(huán)測試每一個(gè)test用例
    for _,tc := range tests {
        got := Split(tc.input, tc.seq)
        if !reflect.DeepEqual(got, tc.want) {
            t.Errorf("got= %#v, want= %#v", got, tc.want)
        }
    }
}

//子測試
func TestSplitSample(t *testing.T) {
    type test struct{
        input string
        seq string
        want []string
    }

    tests := map[string]test{
        "simple seq" : {"a:b:c",":",[]string{"a","b","c"}},
        "wrong seq" : {"a:b:c",",",[]string{"a:b:c"}},
        "more seq" : {"abcd","bc",[]string{"a","d"}},
        "leading seq" : {"我愛你","愛",[]string{"我","你"}},
    }

    for name,tc := range tests {
        got := Split(tc.input,tc.seq)
        if !reflect.DeepEqual(got, tc.want) {
            t.Errorf("name= %#v, got= %#v, want= %#v", name, got ,tc.want)
        }
    }
}


func TestSplit2(t *testing.T) {
    type test struct {
        input string
        seq string
        want []string
    }
    tests := map[string]test{
        "simple seq" : {"a:b:c",":",[]string{"a","b","c"}},
        "wrong seq" : {"a:b:c",",",[]string{"a:b:c"}},
        "more seq" : {"abcd","bc",[]string{"a","d"}},
        "leading seq" : {"我愛你","愛",[]string{"我","你"}},
    }

    for name,tc := range tests {
        t.Run(name, func(t *testing.T) {
            got := Split(tc.input, tc.seq)
            if !reflect.DeepEqual(got, tc.want) {
                t.Errorf("name= %#v, got= %#v, want= %#v", name, got ,tc.want)
            }
        })
    }
}

go 測試使用的命令

//go的測試命令
go test 執(zhí)行所有的測試Test*方法
go test -v 執(zhí)行所有測試方法,并查看每一個(gè)的測試執(zhí)行
go test -v -run=*** 執(zhí)行某一個(gè)測試用例
go test -cover 測試覆蓋率
go test -cover -coverprofile=c.out 測試覆蓋率,并將覆蓋率寫到文件c.out中
go tool cover -html=c.out 在html中顯示覆蓋率
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逢渔,一起剝皮案震驚了整個(gè)濱河市锁孟,隨后出現(xiàn)的幾起案子润文,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呼奢,死亡現(xiàn)場離奇詭異,居然都是意外死亡切平,警方通過查閱死者的電腦和手機(jī)握础,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悴品,“玉大人禀综,你說我怎么就攤上這事√ρ希” “怎么了定枷?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長届氢。 經(jīng)常有香客問我欠窒,道長,這世上最難降的妖魔是什么悼沈? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任贱迟,我火速辦了婚禮,結(jié)果婚禮上絮供,老公的妹妹穿的比我還像新娘衣吠。我一直安慰自己,他們只是感情好壤靶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布缚俏。 她就那樣靜靜地躺著,像睡著了一般贮乳。 火紅的嫁衣襯著肌膚如雪忧换。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天向拆,我揣著相機(jī)與錄音亚茬,去河邊找鬼。 笑死浓恳,一個(gè)胖子當(dāng)著我的面吹牛刹缝,可吹牛的內(nèi)容都是我干的碗暗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼梢夯,長吁一口氣:“原來是場噩夢啊……” “哼言疗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颂砸,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤噪奄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后人乓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勤篮,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年撒蟀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叙谨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡保屯,死狀恐怖手负,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姑尺,我是刑警寧澤竟终,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站切蟋,受9級特大地震影響统捶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柄粹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一喘鸟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驻右,春花似錦什黑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至森爽,卻和暖如春恨豁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背爬迟。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工橘蜜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人付呕。 一個(gè)月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓扮匠,卻偏偏與公主長得像捧请,于是被迫代替她去往敵國和親凡涩。 傳聞我的和親對象是個(gè)殘疾皇子棒搜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容