草庐IT

test_map

全部标签

go - 根据具有 map[string] 接口(interface)项的值对 slice 进行排序

修改后真实情况与示例数据略有不同。我有一个表,其中包含与我在应用程序中使用的用户界面相关的所有字段和属性。我需要一个按listorder排序的简单slice,它只有这样的字段名称列表。colons=[]string{'id','name','population','phonecode'}但数据源是一个slice,由map[string]interface{}值组成,这些值来自这样的sql查询selectfieldname,label,listorderfromtablefieldswheretablename="city"orderbyfieldnamefields:=[]map[s

unit-testing - 测试一个 go 闭包

我有以下在golang中返回闭包的函数,任何想法/引用怎么可能为它编写测试?type(OrderRepoInterfaceinterface{funcsave(msgMessage)error}//OrderAggregationrepresentsaneventhandlerEventHandlerstruct{repoOrderRepoInterface//inmain.goipassaconcreterepositoryhere}VersionedEventHandlerstruct{functionfunc(msg*Message)error}Messagestruct{ver

unit-testing - 创建模拟函数

您好,我想测试或模拟某个函数并为此返回模拟响应。下面演示的是我的代码示例.gopackagemainimport("fmt"log"github.com/sirupsen/logrus")varconnectDB=ConnectfuncSample(){config:=NewConfig()response:=connectDB(config)fmt.Println(response)log.Info(response)}funcConnect(config*Config)string{return"Insidetheconnect"}我的测试是这样的Sample_test.gopac

dictionary - 如何解决Golang map的并发访问?

现在我有一个只有一个写入/删除goroutine和许多读取goroutine的映射,Mapwithconcurrentaccess上有一些解决方案,例如RWMutex,sync.map,concurrent-map,sync.atomic,sync.Value,什么对我来说是最好的选择?RWMutex的读锁有点多余sync.map和concurrent-map专注于许多写goroutine 最佳答案 你的问题有点含糊-所以我会分解它。WhatformofconcurrentaccessshouldIuseforamap?选择取决于您

go - 为特定包运行 go test

我使用以下命令对特定包运行测试去测试fts-runrun_test.gocan'tloadpackage:packagefts:cannotfindpackage"fts"inanyof:/usr/local/Cellar/go/1.11.1/libexec/src/integration(from$GOROOT)/Users/i055555/go/src/fts(from$GOPATH)包裹看起来像gitproj/|----fts|-----command|-----run.go|-----run_test.go|----internal|-----fs.go|-----tb.go|

go - 如何将 map 值传递给其他文件

文件1funcloopFunc(){m:=make(map[int]net.Conn)fori:=1;i文件2尚不存在,但可以从map中随机分配一个值作为示例funciWantMaps(m){something:=m[1]}这是我的项目结构:+/pkg+-->file1+-->file2考虑一个不断更新file1中的映射的for循环。我正在尝试:将整个映射从file1转移到file2中的函数能够通过file2中的函数从file1中的映射中检索键和值。 最佳答案 我不完全确定您要做什么,但根据我的理解,您希望确保第二个文件中的函数可以

unit-testing - 当A的方法在Go中返回B时模拟对象A和B

我正在尝试在Go中为现有服务实现单元测试,该服务使用连接池结构和来自现有库的连接结构(调用这些LibraryPool和LibraryConnection)连接到外部服务。为了使用这些,主代码中的服务函数使用池的一个唯一的全局实例,它有一个GetConnection()方法,如下所示://CurrentMainCodevarpoolLibraryPool//global,instantiatedinmain()funcsomeServiceFunction(whttp.ResponseWriter,r*http.Request){//readrequest//...conn:=pool.

go - 我可以在没有两次索引调用的情况下同时更新和检索 Map 中的元素吗?

我有一张包含整数值的map。我想更新一个值,然后检查更新后的值是否超过阈值。如果我不需要检查新值,那么我会简单地做map[key]+=1如果我想检查新值,明显的变化是:old_val:=map[key]new_val:=old_val+1map[key]=new_valif(new_val>threshold){return}但是,这对map进行了两次索引调用,这不一定是常量时间操作。我想做的是:val_p:=&(map[key])*(val_p)+=1if(*(val_p)>threshold){return}但是,GoLang映射在设计上是不可寻址的,因为地址显然可以改变(尽管在这

go - "go test"和 "bazel test"中的不同文件权限错误

如果一个测试想要断言文件权限错误,例如,写入文件系统的根目录,“gotest”返回一个syscall.EACCES错误,而“bazeltest”返回一个系统调用.EPERM。如何让“bazeltest”和“gotest”都通过测试?可以找到一个例子here. 最佳答案 您可以使用bazel--spawn_strategy=standalonetest//...禁用沙箱。我怀疑这会解决这个问题。但是,您可能需要考虑写入/是否是您要测试的行为。如果您需要在不同的操作系统或Docker容器内运行代码,在这种情况下您将获得不同的行为,因此您

unit-testing - 如何修复测试用例中的 "missing type in composite literal"

我正在尝试为函数ReadField()编写测试代码,但我在定义测试用例时遇到了困难。它给出了一个错误“复合文字中缺少类型”。我相信这只是一些语法错误。我已经尝试在函数体之外定义结构体,但它仍然会给出相同的错误。ReadField(string,string,bool)(bool,string)funcTestReadField(t*testing.T){testCases:=[]struct{NamestringInputstruct{FirstStringstringSecondStringstringSomeBoolbool}Expectedstruct{IsValidboolMe