Go测试
Go有一个内建的测试指令go test
以及testing
包,联合给出一个最小但完整的测试体验,标准工具链同时包含性能测试和基于语句的测试。
我这一次打算用Goland
IDE来进行单元测试
单元测试的特性
- 第一个也是唯一的参数必须是
t *testing.T
- 函数名称以
Test
开头,紧接着以大写字母开头的单词或短语。 - 通常被测试的方法会长这样
TestValidateClient
- 调用
t.Error
或者t.Fail
来表示错误(例子中调用t.Errorf
来提供更多细节) t.Log
可以用来提供无失败的调试信息- 测试代码必须保持在一个命名为
something_test.go
的文件中,例如:addition_test.go
虽然我写到这了,事实上应该放在同目录下面,比如测试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
,如下
当然了,你也可以选文件夹,我这里选的是一个文件,选文件夹他会自动查找符合规则的测试文件。
然后Run就是了,还可以Debug
引用
golang基础-编写单元测试公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
评论