如何在gomock的EXPECT调用中断言参数类型?
使用Gomock断言函数参数类型
在Gomock中,你可以通过gomock.AssignableToTypeOf()方法实现对参数类型的断言,这和Java Mockito里的anyString()、anyInt()、any(Class)作用一致。
直接用对应类型的字面量或零值实例指定匹配类型即可,示例代码如下:
mockFoo.EXPECT().MyFunc( gomock.AssignableToTypeOf(""), // 匹配任意string类型参数 gomock.AssignableToTypeOf(0), // 匹配任意int类型参数 gomock.AssignableToTypeOf(MyStruct{}), // 匹配任意MyStruct类型参数 ).Return(true)
如果不想用字面量,也可以先定义对应类型的变量,再传入AssignableToTypeOf():
var expectedStr string var expectedInt int var expectedStruct MyStruct mockFoo.EXPECT().MyFunc( gomock.AssignableToTypeOf(expectedStr), gomock.AssignableToTypeOf(expectedInt), gomock.AssignableToTypeOf(expectedStruct), ).Return(true)
gomock.AssignableToTypeOf()会匹配所有可赋值给目标类型的参数,完全满足你对任意对应类型参数的断言需求。
内容的提问来源于stack exchange,提问作者hydradon
相关产品推荐
相关产品推荐

