GO随笔-单元测试-基础测试

栏目: 编程工具 · 发布时间: 7年前

内容简介:前几天,Leader让我学习GO单元测试并且组内分享。经过这些天在网上查阅资料和实践。总结出以下内容。基础知识:GO为我们提供了测试框架,

单元测试

前几天,Leader让我学习 GO 单元测试并且组内分享。经过这些天在网上查阅资料和实践。总结出以下内容。

基础知识:

GO为我们提供了测试框架, go test ,让我们能够很容易的进行单元测试。

但必须遵守以下几点规则:

最好

只要遵守以上规则,很容易可以编写一个GO单元测试。

在网上查阅资料时,看到有一篇文章写道:

GO随笔-单元测试-基础测试

测试代码的文件放置的位置可以随意?

顿时感觉GO真的好智能,迫不及待的尝试了一下:

GO随笔-单元测试-基础测试

难道需要指定路径?

GO随笔-单元测试-基础测试

可能是我没有理解这句话的含义,但我个人感觉,还是放在一个目录(包)下吧。

package 也可以随意写?

尝试后结论,不能。

写一个简单的单元测试用例

add.go

package add

func Add(a, b int) int{
    return a+b
}

add_test.go

package add

import "testing"

func TestAdd(t *testing.T){
    if sum:=Add(1,2); sum!=3{
        t.Error("fail")//日志一般要写成f(x)=y, want z的形式
    } else {
        t.Log("success")
    }
}

go test -v 即可看到测试结果

GO随笔-单元测试-基础测试

(这里有一点我踩过的小坑,当想指定测试文件的时候 go test file_test.go 会报错,因为需要后面还需要接上被测试的文件: go test file_test.go file.go

只是一个最简单的基本测试。另一种测试方法叫做:表组测试。其实就是多个基本测试。

将上面test简单改造

package add

import "testing"

func TestAdd(t *testing.T){
    var tests = []struct{
        date []int
        want int
    }{
        {[]int{1, 2}, 3},
        {[]int{2, 5}, 7},
        {[]int{3, 9}, 11},
    }

    for _,v := range tests{
        if sum:=Add(v.date[0], v.date[1]); sum!=v.want{
            t.Errorf("Add(%d, %d) = %d, want %d", v.date[0], v.date[1], v.date[0]+v.date[1], v.want)
        } else {
            t.Log("success")
        }
    }
}

运行结果

GO随笔-单元测试-基础测试

能够清楚看到每组测试结果。这种形式能够轻易添加测试用例。


以上所述就是小编给大家介绍的《GO随笔-单元测试-基础测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

任正非传

任正非传

孙力科 / 浙江人民出版社 / 2017-5-2 / 39.80

编辑推荐: 超权威、超丰富、超真实的任正非传记 亲述任正非跌宕起伏、传奇精彩的一生 ◆知名财经作家孙力科,历时十年,数十次深入华为,采访华为和任正非历程中各个关键人物,几度增删,创作成此书 ◆全书展现了任正非从出生至今70多年的人生画卷,从入伍到退役进国企,从艰难创业到开拓海外市场,囊括其人生道路上各个关键点,时间跨度之长,内容之丰富,前所未有 ◆迄今为止,任正非一生......一起来看看 《任正非传》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具