我有一个Printer
使用标准 goPrintf
函数签名的接口:
type Printer interface {
Printf(format string, tokens ...interface{})
}
我希望能够使用gomock模拟这个界面,但我不确定如何tokens ...interface{}
正确设置参数。
我希望这Printf(gomock.Any(), gomock.Any())
将涵盖所有潜在情况(因为tokens
编译为[]interface{}
),但看来您需要为 N 个令牌设置显式调用:
// no tokens
mockPrinter.EXPECT().
Printf(gomock.Any()).
AnyTimes()
// 1 token
mockPrinter.EXPECT().
Printf(gomock.Any(), gomock.Any()).
AnyTimes()
// 2 tokens
mockPrinter.EXPECT().
Printf(gomock.Any(), gomock.Any(), gomock.Any()).
AnyTimes()
// ... up to N tokens
有谁知道更好的方法来做到这一点?