Actual behavior A clear and concise description of what the bug is.
For the interface with generics
type Model[T any] interface {
*T
TableName() string
}
type Client[T any, P types.Model[T]] interface {
Create(*P) error
}
The generated mock is like this
// MockClient is a mock of Client interface.
type MockClient[T any, P types.Model[client.T]] struct {
ctrl *gomock.Controller
recorder *MockClientMockRecorder[T, P]
}
// MockClientMockRecorder is the mock recorder for MockClient.
type MockClientMockRecorder[T any, P types.Model[client.T]] struct {
mock *MockClient[T, P]
}
// NewMockClient creates a new mock instance.
func NewMockClient[T any, P types.Model[client.T]](ctrl *gomock.Controller) *MockClient[T, P] {
mock := &MockClient[T, P]{ctrl: ctrl}
mock.recorder = &MockClientMockRecorder[T, P]{mock}
return mock
}
Expected behavior A clear and concise description of what you expected to
happen.
The argument for the P should be T, not the client.T.
// MockClient is a mock of Client interface.
type MockClient[T any, P types.Model[T]] struct {
ctrl *gomock.Controller
recorder *MockClientMockRecorder[T, P]
}
Actual behavior A clear and concise description of what the bug is.
For the interface with generics
The generated mock is like this
Expected behavior A clear and concise description of what you expected to happen.
The argument for the P should be T, not the
client.T
.To Reproduce Steps to reproduce the behavior
Additional Information
Triage Notes for the Maintainers