Go-Testing

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

要点

Go的自动化测试框架比JUnit、PyUnit等更加轻量级。要点如下:
- 测试代码以xxx_test.go方式命名
- 测试代码中import “testing”
- 测试函数形如 func Testxyz(t *Testing.T) {…}
- 执行测试:go test

示例

比较要创建一个mymath package。

mymath.go

package mymath

func Add(x, y int) int {
    return x + y
}

func Minus(x, y int) int {
    return x - y
}

mymath_test.go

package mymath_test

import "mymath"
import "testing"

func TestAdd(t *testing.T) {
    ret := mymath.Add(2, 3)
    if ret != 5 {
        t.Error("Expected 5, got ", ret)
    }
}

func TestMinus(t *testing.T) {
    ret := mymath.Minus(2, 3)
    if ret != -1 {
        t.Error("Expected -1, got ", ret)
    }
}

目录文件结构

D:\examples>tree /F .
文件夹 PATH 列表
卷序列号为 5645-602F
D:\EXAMPLES
│  helloworld.exe
│  helloworld.go
│  math.txt
│  the_shape.go
│
└─the_go_path
    ├─pkg
    │  └─windows_amd64
    │          mymath.a
    │          shape.a
    │          shape2.a
    │
    └─src
        ├─mymath
        │      mymath.go
        │      mymath_test.go
        │
        ├─shape
        │      the_shape.go
        │
        └─shape2
                the_shape.go


D:\examples>

go test

这里略过go install。

mymath.go有错误的情况

D:\examples\the_go_path\src\mymath>go test
--- FAIL: TestMinus (0.00s)
        mymath_test.go:16: Expected -1, got  5
FAIL
exit status 1
FAIL    mymath  0.425s

D:\examples\the_go_path\src\mymath>

测试用例全部通过的情况

D:\examples\the_go_path\src\mymath>go test
PASS
ok      mymath  0.369s

D:\examples\the_go_path\src\mymath>

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

本文来自:CSDN博客

感谢作者:u013344915

查看原文:Go-Testing

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

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