草庐IT

API测试

全部标签

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 - 测试 golang 文件夹结构

我的文件夹结构如下:src/github.com/hello/hello.gohello_test.gointegers/integers.gointegers_test.gohello.go/hello_test.go属于packagemainintegers.go/integers_test.go属于包整数当从文件夹hello的根目录运行gotest时,它只运行hello_test.go。我怎样才能让它递归地运行所有测试。这是在各自的包内构建测试的正确方法吗? 最佳答案 有一个make文件怎么样?将来如果您扩展您的项目并拥有更多

mysql - 如何测试mysql的insert方法

我正在Go中设置测试。我使用go-sqlmock来测试mysql连接。现在我尝试测试mysqlinsert逻辑。但是出现错误。我想知道如何解决这个错误。serverside:golangdb:mysqlwebframework:gindao.gofuncPostDao(db*sql.DB,articleutil.Article,uustring){ins,err:=db.Prepare("INSERTINTOarticles(uuid,title,content)VALUES(?,?,?)")iferr!=nil{log.Fatal(err)}ins.Exec(uu,article.T

go - 如何在 Go 中正确测试 Controller 类

我正在使用gomock生成业务层并模拟其方法结果。到目前为止,我无法让测试通过,它说“想要”和“得到”的值不同我正在将对象的json表示形式传递给strings.NewReader,而“Want”的值“等于{{...”,这可能是问题所在。packageproductimport(//...)var(productBody=`{"seller":{"id":"Foo"},"sku":"kj1293lkxpto","gtin":"7894949501280","name":"Foo","description":"Bar","legacyInfo":{"id":1021,"digit":4

go - 使用 initilzer 函数创建的结构不会导出到测试包中吗?

假设我们有一个struct和一个类似这样的结构的构造函数packagemyPackagetypeClientstruct{aTypeAbTypeB}funcNewClient(aTypeA,bTypeB)ConcreteClient{return&Client{a:a,b:b,}}typeConcreteClientinterface{ExportedFunc()}func(c*Client)privateFunc(){//...}func(c*Client)ExportedFunc(){//...}我们在这样的测试包中使用这个客户端var(c=&Client{a:a,b:b,})fu

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.

json - 在 GO lang 中使用 API 时如何将 JSON 转换为 Go 类型定义

我正在构建一个使用API的应用程序,然后还将json数据保存到golang结构中,稍后我将制作端点,为某些计算提供结果。我已经实现了使用API,具有挑战性的部分是如何以go理解的方式保存数据。哪种方法合适?下面是我发起请求时的JSON格式。我感兴趣的key只有TimeSeries(1min)JSON{"MetaData":{"1.Information":"Intraday(1min)pricesandvolumes","2.Symbol":"MSFT","3.LastRefreshed":"2018-05-2416:00:00","4.Interval":"1min","5.Outp

go - 在 Go 中使用外部 API 后使用 REST 客户端保存数据

我是Go的新手lang创建了一个使用alphavantage的REST客户端接口(interface)在我发出GET请求后出现的JSON结构如下所示。我只需要TimeSeries关键数据,以便我自己进行计算。如何从TimeSeries获取数据并保存它以便我自己对数据进行操作?JSON{"MetaData":{"1.Information":"Intraday(1min)pricesandvolumes","2.Symbol":"MSFT","3.LastRefreshed":"2018-05-2516:00:00","4.Interval":"1min","5.OutputSize":