go 单元测试

前端之家收集整理的这篇文章主要介绍了go 单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

go 单元测试

概述


go 提供了自动测试的包 testing

假设我们有一个文件youfile.go,那么建立测试文件的名字为 yourfile_test.go,这个文件中有测试函数,形式如下:

func TestXxx(*testing.T)

其中 TestXxxXxx 的第一个字母 X 必须是大写字母。

将你的源文件 yourfile.goyourfile_test.go 放在同一个目录下。
使用 go test 命令运行

实例


这里使用 https://github.com/golang/example/tree/master/stringutil文件测试
stringutil 目录下有两个文件reverse.goreverse_test.go

reverse.go

package stringutil

// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
    r := []rune(s)
    for i,j := 0,len(r)-1; i < len(r)/2; i,j = i+1,j-1 {
        r[i],r[j] = r[j],r[i]
    }
    return string(r)
}

reverse_test.go

package stringutil

import "testing"

func TestReverse(t *testing.T) {
    for _,c := range []struct {
        in,want string
    } {
        {"Hello,world","dlrow,olleH"},{"Hello,世界","界世,{"",""},} {
        got := Reverse(c.in)
        if got != c.want {
            t.Errorf("Reverse(%q) == %q,want %q",c.in,got,c.want)
        }
    }
}

运行结果

[stringnutil]# go test
PASS
ok    stringutil  0.002s

参考文献


pkg/testing

原文链接:https://www.f2er.com/go/189489.html

猜你在找的Go相关文章