端到端测试(e2e)手册:准备工作:组装 go 语言、工具箱、http 测试服务器。撰写 e2e 检测:应用模拟服务器与应用程序互动,认证回应。运作 e2e 检测:应用 go 的 testing 包运行测试。实战案例:认证 rest api 的创建记录功能,保证 api 的准确性。e2e 检测针对保证应用软件在真实环境里正常运转尤为重要,文中手册提供了一个循序渐进步骤,以帮助你撰写和运行 e2e 检测,提高应用程序的信心。 zvvq好,好zvvq
copyright zvvq
Go 框架中的端到端测试手册 内容来自zvvq
端到端测试(E2E)在 Go 框架开发中非常重要,它能确保我们的应用程序在真实环境里正常运转。本文将提供一个循序渐进手册,介绍怎样在 Go 框架中撰写和运行 E2E 检测。 zvvq.cn
准备工作在进行撰写 E2E 检测以前,大家要准备下列部件:
组装 Go 语言和必要的工具包安装一个 Go 架构,如 Gin、Echo 或 Iris设定 HTTP 测试服务器为了让 E2E 测试与大家的应用程序互动,大家需要设置一个 HTTP 测试服务器。可以用 Go 的 net/http/httptest 包创建一个模拟服务器: zvvq好,好zvvq
import( zvvq.cn
"net/http"
zvvq.cn
"net/http/httptest" 内容来自zvvq
)
funcNewMockServer()httptest.Server{
copyright zvvq
mux:=http.NewServeMux()
mux.HandleFunc("/",func(whttp.ResponseWriter,rhttp.Request){ copyright zvvq
w.Write([]byte("HelloWorld!")) 内容来自samhan666
})
returnhttptest.NewServer(mux)
内容来自zvvq
} 内容来自samhan666
撰写 E2E 检测现在能逐渐撰写 E2E 测试了。使我们创建一个 Gin架构应用软件并撰写一个检测来检验首页回应: 内容来自samhan666
import(
本文来自zvvq
"fmt"
zvvq
"net/http" 内容来自samhan666
"net/http/httptest" zvvq
"testing" 本文来自zvvq
"github.com/gin-gonic/gin"
zvvq好,好zvvq
)
zvvq.cn
funcTestHomepage(ttesting.T){
w:=httptest.NewRecorder() 本文来自zvvq
r:=gin.Default() zvvq好,好zvvq
r.GET("/",func(cgin.Context){ 内容来自zvvq,别采集哟
c.String(http.StatusOK,"HelloWorld!")
})
内容来自samhan
req,_:=http.NewRequest("GET","/",nil)
内容来自zvvq
r.ServeHTTP(w,req)
ifw.Code!=http.StatusOK{ zvvq
t.Errorf("Expectedstatuscode%d,got%d",http.StatusOK,w.Code) zvvq好,好zvvq
}
zvvq.cn
ifw.Body.String()!="HelloWorld!"{ 内容来自samhan666
t.Errorf("Expectedbody%s,got%s","HelloWorld!",w.Body.String()) copyright zvvq
}
copyright zvvq
} 本文来自zvvq
运作 E2E 检测应用 Go 的 testing 包运作 E2E 检测: 内容来自samhan666
funcTestMain(mtesting.M){
gofunc(){
zvvq.cn
svr:=NewMockServer()
zvvq
defersvr.Close() 内容来自zvvq
}()
os.Exit(m.Run())
}
本文来自zvvq
实战案例使我们考虑那样一个场景:我们有一个 REST API,接纳 JSON 要求并返回回应。我们能撰写一个 E2E 检测来检验 API 在创建新纪录时的行为:
import(
"bytes" zvvq
"encoding/json" 本文来自zvvq
"io/ioutil"
zvvq好,好zvvq
"net/http" copyright zvvq
"testing"
"github.com/stretchr/testify/assert"
copyright zvvq
)
funcTestCreateRecord(ttesting.T){
zvvq好,好zvvq
body,_:=json.Marshal(map[string]string{"name":"JohnDoe"})
req:=http.NewRequest("POST","/api/records",bytes.NewReader(body)) 内容来自samhan666
client:=&http.Client{}
内容来自zvvq,别采集哟
resp,err:=client.Do(req) zvvq.cn
iferr!=nil{
t.Errorf("Errormakingrequest:%v",err) 内容来自samhan666
} copyright zvvq
actual,err:=ioutil.ReadAll(resp.Body) 内容来自samhan666
iferr!=nil{
t.Errorf("Errorreadingresponsebody:%v",err)
}
本文来自zvvq
expected:=`{"id":1,"name":"JohnDoe"}`
本文来自zvvq
assert.JSONEq(t,expected,string(actual)) 本文来自zvvq
}
汇总E2E检测针对保证应用程序的准确性尤为重要。文中提供的手册将帮助你入门 Go 框架中的 E2E 检测,并提供了一个实战案例来检验建立 API 纪录。根据遵照这些步骤,你能撰写健硕且可靠的 E2E 检测,以提高应用程序的信心。
内容来自zvvq
以上就是Go 框架中的端到端测试手册的详细内容,大量请关注其他类似文章! zvvq好,好zvvq