介绍
Gock是专为Go语言设计的一个高度灵活且易于使用的HTTP请求模拟库。它允许开发者在进行Web服务测试时,无需依赖真实的网络环境或外部API,从而简化开发流程并提高测试速度和稳定性。Gock的设计使得它可以模拟各种复杂的HTTP交互场景,包括但不限于响应状态码、头信息、延迟响应以及流式传输等。
下载
1
| go get -u github.com/h2non/gock
|
使用
一个简单的demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| package main import ( "testing" "net/http" "github.com/h2non/gock" ) func TestMyService(t *testing.T) { defer gock.Off() gock.New("http://api.example.com"). Get("/users"). Reply(200). JSON(map[string]string{"username": "testuser", "email": "test@example.com"}) resp, err := http.Get("http://api.example.com/users") if err != nil { t.Fatal(err) } if resp.StatusCode != 200 { t.Errorf("Unexpected status code. Expected %d, got %d", 200, resp.StatusCode) } }
|
解释:
使用gock 先预定了一个期望的结果,状态码应该是200,json 数据也要匹配