草庐IT

loop_test

全部标签

for-loop - 使用 range for loop slices/map 注册多个路由

考虑我有一段字符串路径:paths:=[]string{"/path0","/path1","/path2"/*..."/path-n"*/}//wherenisthelastpath使用包net/http,我想使用带有range子句的for循环为这个路径注册处理程序。我就是这样做的:for_,path:=rangepaths{http.HandleFunc(path,handler)}//inthiscaseeveryhandlerisprintthepathtotheconsoleortothebrowser编辑:提问者基本上使用了这段代码:for_,path:=rangepath

loops - Go 中的无限 'for' 循环

这个问题在这里已经有了答案:Useofvariablein'for'loopisnotrecognizedinGo(1个回答)关闭5年前。我是Go的新手,但我希望不会遇到像这样基本的问题。packagemainimport"fmt"funcmain(){s:=make([]int,0)s=append(s,1)forlen(s)!=0{j:=len(s)-1top,s:=s[j],s[:j]fmt.Printf("top=%+v\n",top)fmt.Printf("s=%+v\n",s)fmt.Printf("len(s)=%+v\n",len(s))}}此命令不会退出。它只是打印l

loops - Go 中的无限 'for' 循环

这个问题在这里已经有了答案:Useofvariablein'for'loopisnotrecognizedinGo(1个回答)关闭5年前。我是Go的新手,但我希望不会遇到像这样基本的问题。packagemainimport"fmt"funcmain(){s:=make([]int,0)s=append(s,1)forlen(s)!=0{j:=len(s)-1top,s:=s[j],s[:j]fmt.Printf("top=%+v\n",top)fmt.Printf("s=%+v\n",s)fmt.Printf("len(s)=%+v\n",len(s))}}此命令不会退出。它只是打印l

unit-testing - 在测试中覆盖 Go 方法

所以我有这个Client结构,它有一个方法UserByID,它向User的端点发出HTTP请求。我想对该函数进行单元测试,但也不想在函数c.Request中发出实际的HTTP请求。我想用我可以控制的响应和错误来stub该函数。func(cClient)UserByID(idstring)(uUser,errerror){v:=url.Values{}v.Set("id",id)opts:=Request{HTTP:http.Request{Method:http.MethodGet,Form:v,},URL:'some/endpoint/users',}resp,err:=c.Requ

unit-testing - 在测试中覆盖 Go 方法

所以我有这个Client结构,它有一个方法UserByID,它向User的端点发出HTTP请求。我想对该函数进行单元测试,但也不想在函数c.Request中发出实际的HTTP请求。我想用我可以控制的响应和错误来stub该函数。func(cClient)UserByID(idstring)(uUser,errerror){v:=url.Values{}v.Set("id",id)opts:=Request{HTTP:http.Request{Method:http.MethodGet,Form:v,},URL:'some/endpoint/users',}resp,err:=c.Requ

unit-testing - 在 Golang 中进行单元测试时如何测试是否调用了 goroutine?

假设我们有这样一个方法:funcmethod(intrMyInterface){gointr.exec()}在单元测试method中,我们想断言inter.exec被调用了一次且仅调用了一次;所以我们可以在测试中用另一个模拟结构模拟它,这将为我们提供检查它是否被调用的功能:typemockInterfacestruct{CallCountint}func(m*mockInterface)exec(){m.CallCount+=1}在单元测试中:funcTestMethod(t*testing.T){varmockmockInterface{}method(mock)ifmock.Cal

unit-testing - 在 Golang 中进行单元测试时如何测试是否调用了 goroutine?

假设我们有这样一个方法:funcmethod(intrMyInterface){gointr.exec()}在单元测试method中,我们想断言inter.exec被调用了一次且仅调用了一次;所以我们可以在测试中用另一个模拟结构模拟它,这将为我们提供检查它是否被调用的功能:typemockInterfacestruct{CallCountint}func(m*mockInterface)exec(){m.CallCount+=1}在单元测试中:funcTestMethod(t*testing.T){varmockmockInterface{}method(mock)ifmock.Cal

unit-testing - 由于先前的测试用例失败而引发的断言异常

我想不出更好的标题。在下面的代码中,如果rollBackLogger为nil,第一个测试用例将失败,但所有其他测试用例将引发异常。除了使用if语句之外,是否有其他方法可以避免这种情况?我相信这是单元测试中非常常见的情况,assert中应该有一些函数或其他一些方法来避免这种情况。assert.NotNil(rollbackLogger)assert.Equal("Action",rollBackLogger[0].Action)assert.Equal("randompath",rollBackLogger[0].FilePath) 最佳答案

unit-testing - 由于先前的测试用例失败而引发的断言异常

我想不出更好的标题。在下面的代码中,如果rollBackLogger为nil,第一个测试用例将失败,但所有其他测试用例将引发异常。除了使用if语句之外,是否有其他方法可以避免这种情况?我相信这是单元测试中非常常见的情况,assert中应该有一些函数或其他一些方法来避免这种情况。assert.NotNil(rollbackLogger)assert.Equal("Action",rollBackLogger[0].Action)assert.Equal("randompath",rollBackLogger[0].FilePath) 最佳答案

loops - 为什么我的 go 协程在处理后卡住了?

我是Golang的新手。我一直在使用GORM和go并发来读取SQLite数据库并将其写入CSV文件。它工作顺利但是当处理完成时它并没有结束主程序并退出。我必须打印command+c才能退出。我不知道我做错了什么。可能是它进入了某种阻塞或死锁模式之类的。此外,它也不打印再见消息。这意味着它仍在尝试从channel中读取数据。请帮忙。这是代码。packagemainimport("fmt""reflect""github.com/jinzhu/gorm"_"github.com/jinzhu/gorm/dialects/sqlite")typeAirQualitystruct{//gorm