Golang测试--单元测试

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

一、规则

1、测试文件必须_test.go 结尾
2、测试函数名必须TestXxxxx 开始(Xxxx为对应的需要测试的函数)
3、使用 go test 命令开启测试

文件名以_test 结尾,函数以Test 开头,在执行 go test 命令时会自动匹配测试文件很执行测试函数

二、约定

1、有时候我们将测试文件(以_test.go 结尾的文件)放在需要测试的源文件同个目录(包)下,但更好的做法是专门创建一个包用于测试,一般约定包目录以_test结尾(如测试 xxx 包时我们可以建一个 xxx_test 包)

三、示例

源文件目录结构

|src
|---mypkg
|------myunit.go

package mypkg

func Myadd(x,y int) int{
    return x + y
}
测试文件目录结构

|src
|---mypkg_test
|------myunit_test.go

package mypkg_test

import (
    "mypkg"
    "testing"
)


func TestMyadd(t *testing.T) {
    a := 4
    b := 5
    realValue:= 9
    ac := mypkg.Myadd(a, b)
    if ac != realValue{
        t.Errorf("Add(%d,%d)=%d,realValue=%d", a, b, ac, realValue)
    }
}

t.Errorf 用于提示错误信息,用于程序未到达设想结果时进行报错提示,如果程序执行到这一步,go test 会提示不成功,并且输出这个错误信息

执行 go test (进入 mypkg_test 包目录)
C:\liuming\code\gocode\src\mypkg_test>go test
PASS
ok      mypkg_test     0.635s

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

本文来自:简书

感谢作者:hellocassiel

查看原文:Golang测试--单元测试

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

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