go 单元测试

fengfengdiandia · · 1145 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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, 世界", "界世 ,olleH"},
        {"", ""},
    } {
        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


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:fengfengdiandia

查看原文:go 单元测试

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1145 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传