草庐IT

BeanShell断言

全部标签

go - Testify mock 正在返回函数未被调用的断言

我的测试一直失败,但没有实际调用发生,但我肯定func被调用了(这是一个日志函数,所以我在终端上看到日志)基本上我的代码看起来像这样:common/utils.gofuncLogNilValue(ctxstring){log.Logger.Warn(ctx)}main.goimport("common/utils")funcCheckFunc(*stringvalue){ctx:="Somecontextstring"ifvalue==nil{utils.LogNilValue(ctx)//voidfuncthatjustlogsthestring}}test.gotypeMyMock

go - 返回接口(interface)时的类型断言

我是golang的新手;然而,根据我目前的知识,我知道value-type和reference-type都可以实现一个接口(interface)。但就类型断言而言,返回结构的方式似乎很重要。请参阅以下内容:packagemainimport("fmt")typeSomeErrorinterface{Error()string}typeConcreteErrorstruct{}func(ConcreteError)Error()string{return"?"}funcreturnPointer()SomeError{return&ConcreteError{}}funcreturnVa

go - Go中非测试函数的断言

我想在函数中使用断言,但它不是测试函数。这只是一个普通函数,我想使用类似assert.Equal(param1,some_constant)的函数。我遇到了以下包裹:https://godoc.org/github.com/stretchr/testify/assert虽然,它似乎还需要testing包,并为函数提供类型为*testing.T的参数。Go中有没有其他的assert函数,我可以直接调用assert函数而不实际依赖任何其他测试包或参数? 最佳答案 Go不提供断言。Go团队的语言常见问题解答中有一个部分:https://g

go - 使用 Golang 解决没有泛型的类型断言?

我正在使用gorm,它允许多种数据类型,例如int、uint、int8、uint8....然后我在模板中有一个这样的插件:f["UNIX2STR"]=func(tinterface{},fstring)string{switcht.(type){caseint:returntime.Unix(int64(t.(int)),0).Format(f)caseuint:returntime.Unix(int64(t.(uint)),0).Format(f)caseuint8:returntime.Unix(int64(t.(uint8)),0).Format(f)case*int:retur

go - 我应该能够键入断言一段字符串映射吗?

我正在使用GoNSQlibrary接收消息其中字段是map[string]string的一部分。我觉得我应该能够将此字段断言为value.([]map[string]string)但它失败了,我无法判断这是否是预期的。这个片段复制了行为https://play.golang.org/p/qcZM880Nal为什么这个类型断言会失败? 最佳答案 这是简要介绍hereintheFAQ.类型[]interface{}和[]map[string]string在内存中有两种不同的表示。没有直接的方法可以在它们之间进行转换。此外,即使允许转换,

Golang 断言任何数字 float

我使用的库仅接受float64作为函数参数,但我的代码可以在interface{}中发布任何类型的数字,这意味着整数、整数8、整数16、整数32、整数64、uint、uint8、uint16、uint32、uint64、float32、float64。我如何编写一个优雅的函数来断言所有这些类型?我在想这样的事情:ifi,ok:=event.Value.(int);ok{value=float64(i)}elseiff,ok:=event.Value.(float64);ok{value=f}else{...errorandreturn}每个类型有一个elseif。我确定某处有更高效/更

go - 是否可以断言通过像 Java Mockito 一样在 Go 中进行 spy 事件来调用真正的方法?

我正在寻找断言我的测试中涵盖了一个语句。例如,假设从测试开始调用methodA(),它引用了methodB()。我想断言在从测试中执行methodA()时会调用methodB()。在下面的代码中,我如何在Go测试中断言svc.AddCheck()在执行svc.OnStartup()时被调用?func(svc*Servjice)OnStartup()error{iferr:=svc.AddCheck("cache");err!=nil{returnerr}returnnil} 最佳答案 Isitpossibletoassertthat

go - 访问在结构内声明的列表时出现类型断言错误

我创建了一个包含列表的结构,其中包含对相同结构类型的值的引用。我是go语言的新手,无法找到一种方法来访问自动解析为上述结构类型的值。在java中是这样的:classNode{Stringvalue;Stringkey;Listchildren=newArrayList();publicNode(Stringkey,value){//restofthecodefollows}}classAccessNode{publicstaticvoidmain(Stringargs[]){Nodenode=newNode("key","value");//Thevaluesautomatically

dictionary - 项目列表的 Golang 类型断言

我调用一个API,它返回一个字典(map),其中包含一个项目列表作为值。例如:-result={'outputs':[{'state':'md','country':'us'},{'state':'ny','country':'ny'}]}以上数据是python中数据的表示方式。在Python中,我直接使用result['outputs'][0]来访问列表中的元素列表。在Golang中,相同的API返回数据,但是当我尝试访问数据作为结果['outputs'][0]得到这个错误:-invalidoperation:result["outputs"][0](typeinterface{}d

go - 如何断言一个空接口(interface)回到我的自定义类型的一部分?

我在这个应用程序中有15个自定义类型,我希望对它们进行的处理实际上对它们都非常通用。在每种情况下,我都需要迭代我正在使用的任何类型的slice。接口(interface)是当前通过的,但它当然不必保持这种状态我有以下代码:funcProcessSlice(ininterface{}){switchreflect.TypeOf(p.in).Kind(){casereflect.Slice:s:=reflect.ValueOf(p.in)fori:=0;ifmt.Println用于调试,我得到以下类型的输出:[map[_Id:4K7qx_mUSbV-----------==name:_cl