mock
mock copied to clipboard
Support variadic pointer parameter on caller.SetArg
gomock caller.SetArg recognizes variadic pointer parameter as a single param
Code example
func (p *pkg) VariadicInterface(data ...interface{}) {
for i := range data {
data[i] = i
}
}
func (p *pkg) VariadicInt(data ...*int) {
for i := range data {
*data[i] = i
}
}
// Usage
var a, b, c, d int
pkgReal.VariadicInterface(&a, &b)
pkgReal.VariadicInt(&c, &d)
Expect function on Test
mockPkg.EXPECT().VariadicInterface(gomock.Any(), gomock.Any()).SetArg(0, 5).SetArg(1, 5)
mockPkg.EXPECT().VariadicInt(gomock.Any(), gomock.Any()).SetArg(0, 5).SetArg(1, 5)
Output
SetArg(1, ...) called for a method with 1 args
Expected behaviour
Test passed with a, b, c, and d match given value
Please correct me if I use it wrong.
Sorry, I did not notice this
// TODO: This will break on variadic methods.
+1 on this
I've needed a similar functionality and made a change that seems to match this issue