zvvq技术分享网

Go 框架中的端到端测试指南(端到端测试怎么理

作者:zvvq博客网
导读端到端测试(e2e)指南:准备工作:安装 go 语言、工具包、http 测试服务器。编写 e2e 测试:使用模拟服务器与应用程序交互,验证响应。运行 e2e 测试:使用 go 的 testing 包运行测试。

端到端测试(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 检测以前,大家要准备下列部件:

内容来自zvvq

组装 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

)

zvvq

funcNewMockServer()httptest.Server{

copyright zvvq

mux:=http.NewServeMux()

zvvq.cn

mux.HandleFunc("/",func(whttp.ResponseWriter,rhttp.Request){ copyright zvvq

w.Write([]byte("HelloWorld!")) 内容来自samhan666

})

zvvq

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){

内容来自zvvq

w:=httptest.NewRecorder() 本文来自zvvq

r:=gin.Default() zvvq好,好zvvq

r.GET("/",func(cgin.Context){ 内容来自zvvq,别采集哟

c.String(http.StatusOK,"HelloWorld!")

zvvq.cn

})

内容来自samhan

req,_:=http.NewRequest("GET","/",nil)

内容来自zvvq

r.ServeHTTP(w,req)

zvvq.cn

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){

zvvq

gofunc(){

zvvq.cn

svr:=NewMockServer()

zvvq

defersvr.Close() 内容来自zvvq

}()

zvvq.cn

os.Exit(m.Run())

本文来自zvvq

}

本文来自zvvq

实战案例使我们考虑那样一个场景:我们有一个 REST API,接纳 JSON 要求并返回回应。我们能撰写一个 E2E 检测来检验 API 在创建新纪录时的行为:

zvvq.cn

import(

zvvq

"bytes" zvvq

"encoding/json" 本文来自zvvq

"io/ioutil"

zvvq好,好zvvq

"net/http" copyright zvvq

"testing"

内容来自samhan

"github.com/stretchr/testify/assert"

copyright zvvq

)

内容来自samhan

funcTestCreateRecord(ttesting.T){

zvvq好,好zvvq

body,_:=json.Marshal(map[string]string{"name":"JohnDoe"})

内容来自samhan

req:=http.NewRequest("POST","/api/records",bytes.NewReader(body)) 内容来自samhan666

client:=&http.Client{}

内容来自zvvq,别采集哟

resp,err:=client.Do(req) zvvq.cn

iferr!=nil{

zvvq

t.Errorf("Errormakingrequest:%v",err) 内容来自samhan666

} copyright zvvq

actual,err:=ioutil.ReadAll(resp.Body) 内容来自samhan666

iferr!=nil{

zvvq

t.Errorf("Errorreadingresponsebody:%v",err)

zvvq好,好zvvq

}

本文来自zvvq

expected:=`{"id":1,"name":"JohnDoe"}`

本文来自zvvq

assert.JSONEq(t,expected,string(actual)) 本文来自zvvq

}

内容来自zvvq

汇总E2E检测针对保证应用程序的准确性尤为重要。文中提供的手册将帮助你入门 Go 框架中的 E2E 检测,并提供了一个实战案例来检验建立 API 纪录。根据遵照这些步骤,你能撰写健硕且可靠的 E2E 检测,以提高应用程序的信心。

内容来自zvvq

以上就是Go 框架中的端到端测试手册的详细内容,大量请关注其他类似文章! zvvq好,好zvvq