go test xxx.go
带 -v 表示冗余输出,成功pass的也会输出信息。
文件命名使用 xx_test.go 保存在项目目录里即可,也可以新建个test目录,TestAll
测试分为单元测试(功能)和基准测试(性能)。
单元测试函数名Test开头,接收一个指针型参数(*testing.T)。Example示例程序也算单元测试,不用接收参数。
go test -v -run="指定函数名"
// one_test.go
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"testing"
)
const checkMark = "\u2713" // 对号 %v
const ballotX = "\u2717" // 错号
// 输出测试
func TestA(t *testing.T) {
t.Log(checkMark, "测试成功,Logf")
t.Error(ballotX, "失败了但继续,Errorf")
t.Fatal(ballotX, "\t 失败了并终止,Fatalf, \\t是制表符")
t.Log("运行不到这里了")
}
// 模拟服务器返回
func mockServer() *httptest.Server {
f := func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
fmt.Fprintf(w, "success")
}
return httpte