草庐IT

unit_count

全部标签

unit-testing - Golang 单元测试 : error conditions

如何在Golang中测试错误条件和其他意外代码流?假设我有如下代码:importcryptofuncA(args)error{x,err:=crypto.B()iferr!=nil{returnerr}returnnil}B是一些函数。我相信我测试这种失败情况的唯一方法是更改​​B的值以进行测试(模拟它以便返回错误)。我尝试过的事情:1)monkeypatch在测试之前对函数进行修补,然后取消修补。这是一个可怕的想法。引起了各种奇怪的问题测试正在运行。2)将B作为参数传递给A。这一切都很好,但它也意味着我必须更改A的定义然后更新每次使用它每次执行更改时。此外,A可能正在使用许多导入的函

unit-testing - 正确使用 httptest 模拟响应

我有一些看起来像这样的东西:func(client*MyCustomClient)CheckURL(urlstring,json_response*MyCustomResponseStruct)bool{r,err=http.Get(url)iferr!=nil{returnfalse}deferr.Body.Close()....dostuffwithjson_response在我的测试中,我有以下内容:funcTestCheckURL(t*test.T){ts:=httptest.NewServer(http.HandlerFunc(func(whttp.ResponseWrite

unit-testing - Go 单元测试 fatal error 和测试 main()

我对使用PHPUnit测试的PHP背景进行测试还很陌生。在PHP中,您需要100%的覆盖率这一说法非常可靠。在Go中,我读到的关于测试的大部分内容似乎都很少,没有诸如引发错误之类的内容。比如我的小程序:funcmain(){config=readConfig("config.json")}funcreadConfig(pathstring)Config{varcfgConfigfile,err:=ioutil.ReadFile(path)iferr!=nil{log.Fatal(err)}err=json.Unmarshal(file,&cfg)iferr!=nil{log.Fatal

unit-testing - 在 golang 中实现嵌套接口(interface)

我有一个包含很多子方法的接口(interface)。typeInterfaceCheckoutinterface{GetID()intGetItems()[]InterfaceCartItem//...thenlike30moremethods}我有一个只使用GetItems方法的方法。funcGetRates(checkoutIInterfaceCheckout)[]Rate{for_,item:=rangecheckoutI.GetItesm(){p:=item.GetProduct()}}我希望能够测试此GetRates方法,而无需模拟InterfaceCheckout中的所有方

unit-testing - 在 Go 中为 httptest.NewServer 使用自定义 URL

我通过在Go语言中创建一个http测试服务器来在一些rest调用上运行UT。我的代码如下。typestudentstruct{FirstNamestringLastNamestring}functestGetStudentName(){testServer:=httptest.NewServer(http.HandlerFunc(func(whttp.ResponseWriter,r*http.Request){response=new(student)response.FirstName="Some"response.LastName="Name"b,err:=json.Marsha

unit-testing - 是否可以在 go test 中跨单元测试共享上下文?

我正在Go中实现一个trie作为学习语言的一种方式。我想从一开始就编写测试,以此来感受Go的处理方法。我在测试trie时遇到的一个问题是我必须为每个单元测试重建它。有没有办法在单元测试中重用我的特里树的相同实例?理想情况下,我想要一种无需任何外部依赖项即可执行此操作的方法。 最佳答案 是的:只需在trie_test.go的funcinit()中构造它。(或者甚至使用文字。) 关于unit-testing-是否可以在gotest中跨单元测试共享上下文?,我们在StackOverflow上找

unit-testing - 标准库错误的覆盖率测试

我一直在尝试了解Go的内置测试框架并获得适当的测试覆盖率。在我正在测试的其中一个文件中,我只获得了大约87%的覆盖率:覆盖率:87.5%的语句下面是测试中的部分代码://Checkthattheworkingdirectoryissetif*strctFlags.PtrWorkDir==""{//iftheworkingdirectoryisempty,setittothecurrentdirectorystrTemp,err:=os.Getwd()iferr!=nil{return"",errors.New("Couldnotgetcurrentworkingdirectory")}

count(列名)、count(1)和 count(*)有什么区别?

在MySQL中,这几个都是统计操作,很多人在使用的时候,都使用的是count(1),这有没有问题?使用正确?达到了统计效果?我们从效果和效率两方面来分析下执行效果count(*)包括了所有的列,在统计时不会忽略列值为null的数据count(1)用1表示代码行,在统计时不会忽略列值为null的数据count(列名)在统计时,会忽略列值为空的数据,就是说某个字段的值为null时不统计简单来说,count(*)和count(1)都统计null列,count(列名)不统计null列执行效率1、InnoDB引擎count(字段)InnoDB通过遍历最小的可用二级索引来处理selectcount(*)语

windows的max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

场景windows使用WLS2作为docker的虚拟子系统,然后启动docker的elasticsearch的集群时出现maxvirtualmemoryareasvm.max_map_count[65530]istoolow,increasetoatleast[262144]对我无效解决方法参考:https://blog.csdn.net/Nicolege678/article/details/125280585https://blog.csdn.net/weixin_42170236/article/details/113698846https://blog.csdn.net/sinat_3

unit-testing - 如何在 Golang 测试文件中构建导入

我在main.go中定义了无法在main_test.go中访问的函数。但是,在一些在线教程中,我看到函数是可访问的:我想了解其中的区别,以及如何以惯用的方式构建这些函数。具体来说,我有一个包含多个二进制文件的应用程序:myapp/cmd/app/main.gomyapp/cmd/cli/main.go我目前在main.go文件的funcmain中运行了很多简单的单元测试逻辑。我只是测试单个函数并让它们打印输出,如果我能避免的话,我不会尝试调用“测试”套件的全部功能。由于此时我在main.go顶部的测试太长了,我想将它们移动到特定的测试文件中,例如:myapp/cmd/app/main_