草庐IT

power_unit

全部标签

unit-testing - 如何在导入包中重用测试代码?

这个问题在这里已经有了答案:CanIcreatesharedtestutilities?(2个答案)关闭3年前。这是我的目录层次结构:/|--main.go//packagemain,anHTTPserverwhichacceptsrequestandcallsC/UAPIsinpkg1tofinishcertaintask|--main_test.go//wantstocallveryfyTaskNumberinpkg1_test|--pkg1//packagepkg1,CRUDAPIswithRetrieve&Deleteunexportedforsafety|--pkg1_tes

unit-testing - 当测试在另一个包中时获取覆盖率统计信息

我的测试与我的代码不在同一个包中。我发现这是一种使用大量测试文件组织代码库的不那么困惑的方式,而且我读到这是一个好主意,可以将测试限制为通过包的公共(public)api进行交互。所以它看起来像这样:api_client:Client.goArtistService.go...api_client_testsArtistService.Events_test.goArtistService.Info_test.goUtilityFunction.go...我可以输入gotestbandsintown-api/api_client_tests-cover并查看0.181s覆盖率:100.

unit-testing - 当测试在另一个包中时获取覆盖率统计信息

我的测试与我的代码不在同一个包中。我发现这是一种使用大量测试文件组织代码库的不那么困惑的方式,而且我读到这是一个好主意,可以将测试限制为通过包的公共(public)api进行交互。所以它看起来像这样:api_client:Client.goArtistService.go...api_client_testsArtistService.Events_test.goArtistService.Info_test.goUtilityFunction.go...我可以输入gotestbandsintown-api/api_client_tests-cover并查看0.181s覆盖率:100.

unit-testing - 在 docker build 中缓存 "go get"

我想将我的golang单元测试封装在一个docker-compose脚本中,因为它依赖于几个外部服务。我的应用程序有很多依赖项,所以需要一段时间才能goget。我怎样才能以允许docker容器构建的方式缓存包,而不必每次我想测试时都下载所有依赖项?我的Dockerfile:FROMgolang:1.7CMD["go","test","-v"]RUNmkdir-p/go/src/appWORKDIR/go/src/appCOPY./go/src/appRUNgo-wrapperdownloadRUNgo-wrapperinstall每次我想运行单元测试时,我都会在以下脚本上运行docke

unit-testing - 在 docker build 中缓存 "go get"

我想将我的golang单元测试封装在一个docker-compose脚本中,因为它依赖于几个外部服务。我的应用程序有很多依赖项,所以需要一段时间才能goget。我怎样才能以允许docker容器构建的方式缓存包,而不必每次我想测试时都下载所有依赖项?我的Dockerfile:FROMgolang:1.7CMD["go","test","-v"]RUNmkdir-p/go/src/appWORKDIR/go/src/appCOPY./go/src/appRUNgo-wrapperdownloadRUNgo-wrapperinstall每次我想运行单元测试时,我都会在以下脚本上运行docke

unit-testing - 在golang中重新定义const进行测试

我正在为服务和测试编写一个http客户端,我想使用net/http/httptest服务器而不是调用远程API。如果我将baseUrl设置为我的测试服务器的url的全局变量,我可以轻松地做到这一点。但是,这会使生产代码更加脆弱,因为baseUrl也可以在运行时更改。我的偏好是使baseUrl成为生产代码的const但仍然可以更改。packagemainconstbaseUrl="http://google.com"//inmain_test.gots:=httptest.NewServer(http.HandlerFunc(func(whttp.ResponseWriter,r*htt

unit-testing - 在golang中重新定义const进行测试

我正在为服务和测试编写一个http客户端,我想使用net/http/httptest服务器而不是调用远程API。如果我将baseUrl设置为我的测试服务器的url的全局变量,我可以轻松地做到这一点。但是,这会使生产代码更加脆弱,因为baseUrl也可以在运行时更改。我的偏好是使baseUrl成为生产代码的const但仍然可以更改。packagemainconstbaseUrl="http://google.com"//inmain_test.gots:=httptest.NewServer(http.HandlerFunc(func(whttp.ResponseWriter,r*htt

unit-testing - Go 中良好的单元测试

我一直认为好的单元测试,都是独立的测试。“独立”是指当函数“A”使用“B”时,我们测试函数“A”时,我们模拟/stub“B”以防“B”无法正常工作时它不会使“A”失败.但是当我们检查golang包的来源时,这个原则是不被尊重的。例如,让我们检查url包中的url.go和url_test.go:url.go:funcparseQuery(mValues,querystring)(errerror){forquery!=""{...key,err1:=QueryUnescape(key)...url_test.go:funcTestParseQuery(t*testing.T){fori,

unit-testing - Go 中良好的单元测试

我一直认为好的单元测试,都是独立的测试。“独立”是指当函数“A”使用“B”时,我们测试函数“A”时,我们模拟/stub“B”以防“B”无法正常工作时它不会使“A”失败.但是当我们检查golang包的来源时,这个原则是不被尊重的。例如,让我们检查url包中的url.go和url_test.go:url.go:funcparseQuery(mValues,querystring)(errerror){forquery!=""{...key,err1:=QueryUnescape(key)...url_test.go:funcTestParseQuery(t*testing.T){fori,

unit-testing - 如何测试从请求主体读取错误?

我正在为golang中的http处理程序编写单元测试。在查看此代码覆盖率报告时,我遇到了以下问题:从请求中读取请求正文时,ioutil.ReadAll可能会返回一个我需要处理的错误。然而,当我为我的处理程序编写单元测试时,我不知道如何以触发此类错误的方式向我的处理程序发送请求(内容过早结束似乎不会生成此类错误,但会在解码body)。这就是我想要做的:packagedemoimport("bytes""io/ioutil""net/http""net/http/httptest""testing")funcHandlePostRequest(whttp.ResponseWriter,r*