草庐IT

get_unit_value

全部标签

unit-testing - 如何在不创建实际网络连接的情况下测试依赖于 net.Conn 的代码?

如果我有适用于net.Conn的代码,我如何在不实际创建与本地主机的网络连接的情况下为其编写测试?我在网上没有看到这个问题的解决方案;人们似乎要么忽略它(不进行测试),要么编写无法并行运行的测试(即使用实际的网络连接,这会耗尽端口),要么使用io.Pipe。不过,net.Conn定义了SetReadDeadline、SetWriteDeadline;而io.Pipe没有。net.Pipe也没有,尽管表面上声称要实现该接口(interface),但它只是通过以下方式实现:func(p*pipe)SetDeadline(ttime.Time)error{return&OpError{Op:

arrays - String to Float64 : multiple-value strconv. 单值上下文中的 ParseFloat()

我有一个像这样的STRINGslice数组:[[header1header2startdateenddateheader3header4][item110001/01/201702/01/20175343340.563433.77252223956][item255401/01/201702/01/201722139.46120138817.232284405]]请记住,数组不断增加。我只是发布一个示例数组。现在我将一些float转换为字符串,以便我可以将其附加到字符串slice。但是,我需要用这些数字做一些数学运算。我想将第二个slice中的字符串编号(5343340.56343)添

unit-testing - 如何获得文件夹的全局测试覆盖率

显示代码覆盖率时,gotest显示每个包的代码覆盖率(百分比)。有没有办法显示一个考虑了所有子文件夹(子包)的文件夹的摘要?我想要的是整个项目的全局代码覆盖率,一个显示文件夹和所有子文件夹的代码覆盖率的数字。 最佳答案 运行后:gotest--coverprofile=coverage.out./...运行:gotoolcover-func=coverage.out您将在结果末尾看到总百分比 关于unit-testing-如何获得文件夹的全局测试覆盖率,我们在StackOverflow上

Golang `go get` - 找不到任何包

我关注了thisguide在Ubuntu16.04上安装Go。但是,当我按照installationinstructions对于Go应用程序(gogetgithub.com/src-d/enry/cmd/enry),我收到以下错误:packagegithub.com/src-d/enry/v2:cannotfindpackage"github.com/src-d/enry/v2"inanyof:/usr/local/go/src/github.com/src-d/enry/v2(from$GOROOT)/root/work/src/github.com/src-d/enry/v2(fr

unit-testing - 我可以使用嵌套界面模拟库代码吗?

这个问题在这里已经有了答案:HowcanImockmultipletypeswhenthesignatureofaconcretemethodreferstoanotherconcretetype,notitsinterface?(1个回答)关闭3年前。我正在尝试在我的go代码中的测试中模拟第3方库。但是我无法编译我所采用的方法。如果我想模拟T2.M2的结果,有什么方法可以使它工作,或者我可以采用另一种方法吗?packagemainimport("fmt")//TwotypesinalibrarythatIdonthavecontrolovertypeT1struct{}func(T1

Golang http get 请求在某些但不是所有 url 上中断

现在我正在使用[此处][1]中的基本获取请求模板从indiegogo获取url作为副项目的一部分。然后我使用将字节数据转换为字符串responseText,err:=ioutil.ReadAll(response.Body)trueText:=string(responseText)在需要时进行适当的错误处理它适用于重复尝试获取和其他一些不同长度的url(至少与前一个url一样大,一些比下一个长)。奇怪的是,当我试图让它中断并抛出一个运行时错误panic:runtimeerror:indexoutofrange并以状态2退出。我很好奇问题可能是什么。我知道这不是indiegogo对我每

unit-testing - Go 应用程序在测试包含锁的函数时挂起

这是我编写的一个函数,用于将请求添加到请求队列:func(self*RequestQueue)addRequest(request*Request){self.requestLock.Lock()self.queue[request.NormalizedUrl()]=request.ResponseChannelself.requestLock.Unlock()}这是它的测试之一:funcTestAddRequest(t*testing.T){before:=len(rq.queue)r:=SampleRequests(1)[0]rq.addRequest(&r)if(len(rq.q

json - 抽象 GET、读取、解码逻辑

我的应用程序进行了大量的API调用,我正试图消除围绕它的一些重复。从概念上讲,每次都会重复以下步骤:发出GET请求检查错误阅读响应正文检查错误反序列化为目标结构检查错误返回目标结构所有调用之间唯一显着的区别是目标结构。在代码中它看起来像这样:funcgetUsers()([]User,error){resp,err:=http.Get(someUrl)iferr!=nil{returnnil,err}ifresp.StatusCode!=200{returnnil,errors.New("Searchreturnnon200statuscode")}deferresp.Body.Clo

戈朗 : declaring maps and slices with iota values

我有这个Go代码:packagemainimport"fmt"typebaseGroupintconst(fooGroupbaseGroup=iota+1barGroup)vargroups=[...]string{fooGroup:"foo",barGroup:"bar",}varxGroups=map[baseGroup]string{fooGroup:"foo",barGroup:"bar",}funcmain(){fmt.Println("groups")fork,v:=rangegroups{fmt.Println(k,v)}fmt.Println("xGroups")for

go - 如何为我的 go 项目制作 go get hook?

示例:在一个带有protobuffers的项目中,我如何要求在获取包时,在尝试构建之前编译protobuffers? 最佳答案 您不能将钩子(Hook)添加到goget构建中,但您可以使用gogenerate在编译你的go代码时编译protobuffers。 关于go-如何为我的go项目制作gogethook?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31374007/