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