golang基础-编写单元测试

小熊 Golang评论1,343字数 747阅读2分29秒阅读模式

Go测试

Go有一个内建的测试指令go test以及testing包,联合给出一个最小但完整的测试体验,标准工具链同时包含性能测试和基于语句的测试。

我这一次打算用GolandIDE来进行单元测试

单元测试的特性

  • 第一个也是唯一的参数必须是t *testing.T
  • 函数名称以Test开头,紧接着以大写字母开头的单词或短语。
  • 通常被测试的方法会长这样 TestValidateClient
  • 调用t.Error或者t.Fail来表示错误(例子中调用t.Errorf来提供更多细节)
  • t.Log可以用来提供无失败的调试信息
  • 测试代码必须保持在一个命名为something_test.go的文件中,例如:addition_test.go

golang基础-编写单元测试

虽然我写到这了,事实上应该放在同目录下面,比如测试alarm_utils.go就应该写成alarm_utils_test.go

开始测试

测试文件代码类似下面

package main

import "testing"

func TestSum(t *testing.T) {
    tables := []struct {
        x int
        y int
        n int
    }{
        {1, 1, 2},
        {1, 2, 3},
        {2, 2, 4},
        {5, 2, 7},
    }

    for _, table := range tables {
        total := Sum(table.x, table.y)
        if total != table.n {
            t.Errorf("Sum of (%d+%d) was incorrect, got: %d, want: %d.", table.x, table.y, total, table.n)
        }
    }
}

添加一个Configurations,如下

golang基础-编写单元测试

当然了,你也可以选文件夹,我这里选的是一个文件,选文件夹他会自动查找符合规则的测试文件。

然后Run就是了,还可以Debug

引用

golang基础-编写单元测试

weinxin
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
Golang最后更新:2020-8-31
小熊