Makes it easier to write Do() and DoAndReturn() code with autocomplete and type checks
When functions are refactored, the type check of these functions helps identifies what tests need to be updated
Protects against runtime issues that can be effectively caught during compile time or linting.
Given the interface:
type Foo interface {
Bar(i int64, s string) (b bool)
}
gomock generates the following methods:
Do(f interface{})
DoAndReturn(f interface{})
Therefore, any function (even when it doesn't match the original interface's method signature) can be passed to Do() and DoAndReturn() risking a runtime error and making it difficult to refactor method signatures effectively.
Proposed Solution
Based on the example of, the following should become the signatures of Do() and DoAndReturn() of the generated mock:
Requested feature
Similar to https://github.com/golang/mock/issues/622, having a type-safe
Do()
andDoAndReturn()
:Do()
andDoAndReturn()
code with autocomplete and type checksGiven the interface:
gomock generates the following methods:
Therefore, any function (even when it doesn't match the original interface's method signature) can be passed to
Do()
andDoAndReturn()
risking a runtime error and making it difficult to refactor method signatures effectively.Proposed Solution
Based on the example of, the following should become the signatures of
Do()
andDoAndReturn()
of the generated mock: