Closed o1egl closed 4 years ago
Generates incorrect code if function has params param.
params
Example:
type I interface { F(params []int) int }
Output:
// F implements a.I func (mmF *IMock) F(params []int) (i1 int) { mm_atomic.AddUint64(&mmF.beforeFCounter, 1) defer mm_atomic.AddUint64(&mmF.afterFCounter, 1) if mmF.inspectFuncF != nil { mmF.inspectFuncF(params) } params := &IMockFParams{params} // Record call args mmF.FMock.mutex.Lock() mmF.FMock.callArgs = append(mmF.FMock.callArgs, params) mmF.FMock.mutex.Unlock() for _, e := range mmF.FMock.expectations { if minimock.Equal(e.params, params) { mm_atomic.AddUint64(&e.Counter, 1) return e.results.i1 } } if mmF.FMock.defaultExpectation != nil { mm_atomic.AddUint64(&mmF.FMock.defaultExpectation.Counter, 1) want := mmF.FMock.defaultExpectation.params got := IMockFParams{params} if want != nil && !minimock.Equal(*want, got) { mmF.t.Errorf("IMock.F got unexpected parameters, want: %#v, got: %#v%s\n", *want, got, minimock.Diff(*want, got)) } results := mmF.FMock.defaultExpectation.results if results == nil { mmF.t.Fatal("No results are set for the IMock.F") } return (*results).i1 } if mmF.funcF != nil { return mmF.funcF(params) } mmF.t.Fatalf("Unexpected call to IMock.F. %v", params) return }```
Hi @o1egl
Thank you for posting the bug. Please check if v3.0.1 works for you. Alternatively you can try v2.1.9 if you don't adopted go modules yet.
Generates incorrect code if function has
params
param.Example:
Output: