草庐IT

test_slice

全部标签

unit-testing - 让 'go test -run <case>' 成功为 'go test' 的一般规则是什么?

我发现'gotest'PASS,但是如果我指定subtest,它会失败,这里我给一个全局变量sample,'gotest'会PASS,'gotest-runf/sample2'会失败.我想知道我应该遵循什么一般规则来防止此类问题?走吧packagemainimport"fmt"vargstringfuncf(sstring)string{g=g+sreturns+g}funcmain(){fmt.Println(f("a"))}t_test.gopackagemainimport("testing")funcTest_f(t*testing.T){tests:=[]struct{nam

go - 使用反射附加到 slice

我想仅使用反射附加到slice。但我不知道如何用新slice“替换”a的值。funcmain(){fmt.Println("Hello,playground")a:=[]string{"a","b","c"}values:=[]string{"d","e"}v:=reflect.ValueOf(a)fmt.Printf("%t\n\n",v.Type())fmt.Printf("%t\n\n",v.Type().Elem().Kind())for_,val:=rangevalues{v.Set(reflect.Append(v,reflect.ValueOf(val)))}fmt.Pr

json - 去测试失败,JSON应该是空的 slice

我正在测试一段代码,称为Compile://Compiletakesincode,andreturnsJSON//bytesandanerroriftherewasonefuncCompile(instring)([]byte,error){//iteratethrougheverylineinthecodefor_,line:=rangestrings.Split(in,"\n"){//Dividethelineintosections//foreasierprocessingtokens:=strings.Split(line,"")for_,a:=rangeavailableEx

unit-testing - 如何使用结构/接口(interface)来模拟依赖项以进行测试

我是新手...我的目标是单元测试我的ready()中的状态是否正在更新。我一直在看https://engineering.aircto.com/writing-testable-code-in-golang/并尝试找出如何使他们正在做的事情适应我的用例,尽可能填补golang知识的空白。我收到错误消息cannotusefakeSession(type*FakeSession)astype*discordgo.Sessioninargumenttoready但我不确定为什么我'我收到此错误。ma​​in.goimport("fmt""os""os/signal""syscall""git

go - 创建 slice 字节 goroutine 挂起

我有一个正在处理的上传程序,但遇到了问题。我有n个例程来处理将零件上传到大文件。本质上,它会将文件拆分为100MB的block,并根据您在配置中指定的并发进程数量同时上传它们。我遇到的问题是当我创建一个缓冲区来读取文件并上传make([]byte,100000000)时挂起...但前提是它在go例程中。(我使用100000000来简化上传计算)这是一个例子。这有效:https://play.golang.org/p/tkn8JVir9Spackagemainimport("fmt")funcmain(){buffer:=make([]byte,100000000)fmt.Println

testing - Golang Benchmark 表测试,我可以从b.Run()中提取func吗?

在golang中进行基准示例测试后,我可以进行以下测试://AnexamplebenchmarktobenchmarkaquerybasedondifferentinputsfuncBenchmark_GetProcessingCountForRegions(b*testing.B){benchmarks:=[]struct{regionstring}{{"EU"},{"US"},}for_,bm:=rangebenchmarks{b.Run(bm.region,func(bbb*testing.B){fori:=0;i这是网络上的默认示例,适用于我;测试taskDb包在GetProc

go test 仅在测试完成后打印输出

我注意到gotest似乎在测试完成后打印到标准输出。我不确定这是gotest的问题,还是因为我正在使用ginkgo以及。有谁知道如何让它在测试运行时打印输出? 最佳答案 在gotest上使用verbose标志以在测试运行时查看日志或打印语句的输出。gotest-v 关于gotest仅在测试完成后打印输出,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/47535538/

go - 序列化结构字段以预先存在 byte slice

我有一个设置,可以通过网络接收数据并将其序列化到我的结构中。它工作正常,但现在我需要将数据序列化到slice缓冲区以通过网络发送它。我试图避免分配超过需要的空间,所以我已经设置了一个缓冲区,我想为我的所有序列化写入该缓冲区。但我不确定该怎么做。我的设置是这样的:recieveBuffer:=make([]byte,1500)header:=recieveBuffer[0:1]message:=recieveBuffer[1:]因此,我尝试将结构中的字段写入message,并将所有字段的总字节数作为header的值。这就是我反序列化结构的方式://Deserialize...func(u

go - panic : runtime error: slice bounds out of range when concurrently running as goroutine

我将一个函数作为goroutine调用,并使用WaitGroup来防止在它们全部完成之前关闭共享扫描仪。myfunc()函数迭代一个文件。我想内存映射这个文件并在所有goroutine之间共享它,而不是每次都从磁盘读取I/O瓶颈。有人告诉我这种方法可行inananswertoanotherquestion.然而,虽然这个函数独立运行良好,但它不能同时运行。我收到错误:panic:runtimeerror:sliceboundsoutofrange但错误是当我调用Scan()方法时(不在slice上),这令人困惑。这是一个MWE://...packagedeclaration;impor

go - 如何理解以下有关golang slice的代码?

最近发现一些代码看不懂,下面是我的代码:funcsubsetsWithDup(nums[]int)[][]int{iflen(nums)==0{return[][]int{[]int{}}}sort.Ints(nums)result:=[][]int{}backtracking(nums,&result,[]int{},0)returnresult}funcbacktracking(nums[]int,result*[][]int,tempList[]int,startint){*result=append(*result,tempList)fori:=start;istart&&nu