Mocking object with methods named the same as testify's ones #1717
-
Hi! I need to mock an interface which has a method called On. type MyMockedObj struct {}
func (obj *MyMockedObj) On() error {
arguments := obj.Called()
return arguments.Error(0)
}
func TestThis() {
obj := Obj{}
obj.On("On").Return(nil) // Error: obj.On("On").Return undefined (type error has no field or method Return)
} How I supposed to do that? |
Beta Was this translation helpful? Give feedback.
Answered by
brackendawson
Mar 23, 2025
Replies: 1 comment
-
Use package kata_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
)
type MyMockedObj struct {
mock.Mock
}
func (obj *MyMockedObj) On() error {
arguments := obj.Called()
return arguments.Error(0)
}
func TestThis(t *testing.T) {
obj := &MyMockedObj{}
defer obj.AssertExpectations(t)
obj.Mock.On("On").Return(nil)
err := obj.On()
assert.NoError(t, err)
} |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
frux
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Use
obj.Mock.On
to access the overiddenOn
method: