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