草庐IT

web-api-testing

全部标签

testing - 如何去测试多个包

在我的项目中,有数百个包。所以我跑的地方:$(foreachi,$(TEST_PKGS),gotest$(i)-test.short-v)大约需要一个小时。如果我运行:gotest$(TEST_PKGS),它将消耗大量内存。如何处理这个问题? 最佳答案 您可以使用./...测试当前目录和所有子目录中的所有包。来自文档:Tomakecommonpatternsmoreconvenient,therearetwospecialcases.First,/...attheendofthepatterncanmatchanemptystrin

unit-testing - 如何模拟getClient?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭4年前。Improvethisquestion我有一个功能:funcHTTPGet(urlstring)(*http.Response,error){resp,err:=getClient().Get(url)returnresp,err}getClient函数是:vardefaultClient*http.ClientfuncgetClient()*http.Client{ifdefaultClient==nil{defaultClient

go - 我如何编写处理来自 API 的响应/错误的 golang 中间件?

基本上,我想编写一个中间件来关闭在请求时创建的事务对象。我正在使用gorillamux包。我熟悉python-Django中间件,它可以正确处理错误或响应。但找不到与golang类似的东西 最佳答案 在Go语言中你也可以创建一个中间件,下面我将创建处理程序的过程编写为validateMiddleware然后在TestEndpointAPI请求时调用它。funcmain(){router:=mux.NewRouter()router.HandleFunc("/test",ValidateMiddleware(TestEndpoint)

rest - 如何使用golang在REST API url中传递动态参数

我正在从postman(googleapi)获取编码的url。在url中,我编写了查询以从数据库中获取信息。在查询中,我硬编码了要获取数据的日期参数。但是当我在我的代码中使用编码查询(用golang编写)时,我希望日期参数来自一个应该每天更改的变量。但我绝不能在url中传递这个动态变量。有什么帮助吗?代码片段:https://*************/?q='LastDate'>="09/04/201812:00:00AM"and'LastDate'这是我在postman中使用的url,我得到一个编码的url作为返回,如下所示:"https://*******************

go - 如何通过结构字段名称获取 Gmail API 错误代码?

GmailAPI错误响应结构包含一个代码字段,符合Examiner_,err:=gmailService.Users.Messages.Send("me",&gMsg).Do()t:=reflect.TypeOf(err)examiner(t,0)回应TypeisandkindisptrContainedtype:TypeisErrorandkindisstructField1nameisCodetypeisintandkindisint...我可以使用字段索引成功获取错误代码,但这更晦涩(因此更难维护)并且感觉更脆弱:errReflectElem:=reflect.ValueOf(e

unit-testing - 在 Go 单元测试中使用两个不同的模拟

我正在学习使用gomock的mockgen实用程序第一次在Go中使用mock进行单元测试。我的单元测试工作正常,除了其中一个。被测方法有两个依赖项:一个依赖于数据库,另一个依赖于它调用restapi的外部服务。数据库的模拟(mockRepo)工作正常,因为被测方法正确调用模拟而不是实际的repo代码。然而,rest客户端的mock继续调用实际的rest客户端而不是mock代码。我不知道为什么。有人可以解释原因并帮助修复吗?这是我的单元测试:funcTestService_CreateWorkspace(t*testing.T){ts:=NewTestService(t)deferts.

go - gin web框架限制上传文件大小不起作用

我运行关于文件上传的gin示例,这个repo来自https://github.com/gin-gonic/examples/tree/5898505356e9064c49abb075eae89596a3c5cd67/upload-file/single.当我改变是限制router.MaxMultipartMemory=1//8MiB但没有为上传大文件而醒来,任何人都知道这一点。packagemainimport("fmt""net/http""github.com/gin-gonic/gin")funcmain(){router:=gin.Default()//Setalowermem

go - 简单的 Web 服务器实现 : GoLang

我正在尝试使用Go实现一个简单的Web服务器。我希望“HelloWorld”显示在客户端浏览器的URL“http://127.0.0.1.12000/”处。我尝试了以下代码,但以错误告终。packagemainimport"net"import"fmt"import"bufio"//import"strings"//onlyneededbelowforsampleprocessingfuncmain(){fmt.Println("Launchingserver...")//listenonallinterfacesln,err:=net.Listen("tcp",":12000")if

json - 如何解析由 cryptocompare API 生成的 JSON?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭5年前。Improvethisquestion我正在尝试使用此API端点解析一些JSON。https://www.cryptocompare.com/api/data/coinlist/我可以看到它使请求正常,然后我尝试解码响应的主体,它返回大量随机数。如果我从调试器复制正文值,我会得到以下结果。(

postgresql - 通用 REST API Golang

在SO中搜索GenericRESTAPIGolang得到0个结果。搜索谷歌给出2个结果。所以这个问题可能没有正确表述或者不可能在Golang中实现。我的目标是避免一遍又一遍地重复类似的代码。所以我试图让Golang中的代码尽可能通用。一次编写,多次使用。这是我第一次尝试在Golang中为select创建一个通用的RESTAPI。下面的代码几乎给出了我想要的:但结果显示在终端中。我不知道如何将结果重定向到浏览器。packagemainimport("fmt""log""net/http""database/sql""time"_"github.com/lib/pq")vardb*sql.