草庐IT

test-coverage

全部标签

unit-testing - 如何在 golang 中编写关于插入、获取、删除和更新数据的测试用例

我必须编写插入、获取、删除和更新数据的测试用例。在互联网上搜索时,我找到了一个代码并且它可以工作,但我不知道它是如何工作的。我的代码在下面给出,任何人都可以用简单的方式告诉我我将如何理解代码。packagemodelsimport("testing""gopkg.in/mgo.v2/bson""fmt")funcTestAddBlog(t*testing.T){typeargsstruct{queryinterface{}}tests:=[]struct{namestringargsargswantbool}{{"first",args{bson.M{"_id":4,"title":"

unit-testing - 在 Go-kit 中为 make 处理函数编写单元测试

我的问题特定于Go-kit以及如何在其中组织代码。我正在尝试为以下功能编写单元测试:funcMakeHandler(svcService,loggerkitlog.Logger)http.Handler{orderHandler:=kithttptransport.NewServer(makeOrderEndpoint(svc),decodeRequest,encodeResponse,)r:=mux.NewRouter()r.Handle("/api/v1/order/",orderHandler).Methods("GET")returnr编写适当的单元测试的正确方法是什么?我见过

unit-testing - 如何定义模拟方法被调用零次

我正在尝试测试以下方法://AuthenticationMiddlewareMiddlewarewhichhandlesalloftheauthentication.funcAuthenticationMiddleware(contextcontext.ContextIntf,wweb.ResponseWriter,r*web.Request,nextweb.NextMiddlewareFunc){//Checkifurlisonethatdoesn'tneedauthorization.Ifnotthansendthemtotheloginpage.for_,url:=rangeAu

unit-testing - 如何重写gocov命令去工具覆盖?

我有以下命令:${GOPATH}/bin/gocovtest./...2>test|${GOPATH}/bin/gocovreport如果我使用gotoolcover,这个命令会是什么样子? 最佳答案 自go1.10gotoolcoverage支持递归包绕过gotest./...-coverprofile=coverage.out 关于unit-testing-如何重写gocov命令去工具覆盖?,我们在StackOverflow上找到一个类似的问题: http

unit-testing - 以 http 作为包装函数的依赖项的单元测试

我有以下函数,在@poy的帮助下,我能够为它创建模拟以便对其进行单元测试。现在的问题是我有包装函数也需要测试这是原始函数,已经过测试funchttpReq(cc[]string,methodstring,urlstring)([]byte,error){httpClient:=http.Client{}req,err:=http.NewRequest(method,url,nil)iferr!=nil{returnnil,errors.Wrap(err,"failedtoexecutehttprequest")}//Herewearepassinguserandpasswordreq.

unit-testing - 如何在 ReverseProxy 中测试 header ?

我正在尝试对以下代码进行单元测试:func(h*Handler)Forward(whttp.ResponseWriter,r*http.Request){url,err:=url.Parse("http://test.com")iferr!=nil{return}reverseProxy:=&httputil.ReverseProxy{Director:func(r*http.Request){r.URL.Host=url.Hostr.URL.Path="/"r.URL.Scheme=url.Schemer.Host=url.Hostr.Header.Set("X-Forwarded-

go - 如何在运行 'go test' 时排除或跳过特定目录

这个问题在这里已经有了答案:Runningtestsandskippingsomepackages(1个回答)关闭3年前。gotest$(golist./...|grep-v/vendor/)-coverprofile.testCoverage.txt我正在使用上面的命令来测试文件,但是我想从测试中排除1个名为“Store”的文件夹。怎么做到的?

unit-testing - 表驱动测试中的竞争检测

我有一个表驱动测试和表循环外的initvar(worker)。我使用gotest-raсe运行测试并添加了t.Parallel()并且没有检测到竞争条件。我可以假设我的测试没有竞争条件吗://Thismockcouldbeinaseparatefile.typemockWorkerstruct{}//implmentourWorkeriterfacefunc(mdmockWorker)Work()error{returnnil}typemockDoerstruct{ErrorerrorWorkerworker}//implmentourDoeriterfacefunc(mdmockDo

unit-testing - 单元测试调用另一个方法的方法

对调用多个方法的方法进行单元测试的最佳方法是什么,例如:modify(stringvalue){if(value.Length>5)replaceit(value);elsechangeit(value);}此伪代码有一个修改方法,(当前)调用replaceit()或changeit()。我已经为replaceit和changeit编写了测试,因此为modify编写新测试将是99%的同一组代码。我需要测试它的想法,因为它可能会在未来发生变化。那么我是否复制粘贴现有的测试代码?将测试代码移动到一个通用函数?还有其他想法吗?我不确定此处的最佳做法。 最佳答案

unit-testing - 使用 github.com/jarcoal/httpmock 验证请求主体

我正在尝试测试的函数接受数据结构,形成一个query_dsl,然后使用形成的查询对Elasticsearch进行/_search调用。因此,我想对形成的query_dsl和url进行断言。我正在使用github.com/jarcoal/httpmock在我的单元测试中模拟net/http请求。根据文档,它公开了funcGetCallCountInfo()map[string]int以验证特定端点被命中的次数。但我也有兴趣知道进行此调用时请求正文是什么。http.Client未公开,因此无法覆盖/模拟它进行测试。如果无法使用此包,那么是否有任何其他库可以模拟网络请求并提供请求主体?