stretchr/testify

mock returns panic when API uses context

Open

#519 opened on Nov 14, 2017

View on GitHub
 (15 comments) (4 reactions) (0 assignees)Go (1,704 forks)batch import
help wantedpkg-mock

Repository metrics

Stars
 (25,958 stars)
PR merge metrics
 (Avg merge 6d 15h) (2 merged PRs in 30d)

Description

go test command returns below panic when we try to use mocks.On: Does testify/mock support context as a parameter.

it reports it is getting type as context.emptyContext

mockery generated API as below:

// SetSchema provides a mock function with given fields: ctx, in func (_m *MockUtils) SetSchema(ctx context.Context, in *models.Schema) (*models.Schema, error) { ret := _m.Called(ctx, in)

var r0 *models.Schema
if rf, ok := ret.Get(0).(func(context.Context, *models.Schema) *models.Schema); ok {
	r0 = rf(ctx, in)
} else {
	if ret.Get(0) != nil {
		r0 = ret.Get(0).(*models.Schema)
	}
}

var r1 error
if rf, ok := ret.Get(1).(func(context.Context, *models.Schema) error); ok {
	r1 = rf(ctx, in)
} else {
	r1 = ret.Error(1)
}

return r0, r1

}

I am using mocks.On as below:

func TestUtils(){ // ..... /// mclient.On("SetSchema", mock.AnythingOfType("context.Context"), mock.AnythingOfType("*models.Schema")).Return(schemaData) ctx := context.Background() s, _ := mockutils.SetSchema(ctx, schemaData) }

i see below panic from mock package. mock: Unexpected Method Call

SetSchema(*context.emptyCtx,*models.Schema) *0: (context.emptyCtx)(0xc420011058) 1: &models.Schema{ID:"", SchemaID:""}

The closest call I have is:

SetSchema(mock.AnythingOfTypeArgument,mock.AnythingOfTypeArgument) 0: "context.Context" 1: "*models.Schema"

goroutine 11 [running]: testing.tRunner.func1(0xc4200740d0) /usr/local/go/src/testing/testing.go:622 +0x29d panic(0x14ba5a0, 0xc4204c32b0) /usr/local/go/src/runtime/panic.go:489 +0x2cf vendor/github.com/stretchr/testify/mock.(*Mock).MethodCalled(0xc4202e24c0, 0x17ff0d6, 0x9, 0xc4204c5080, 0x2, 0x2, 0x7, 0x2, 0xc42003c960) /Users/saaitha/Documents/vendor/github.com/stretchr/testify/mock/mock.go:311 +0x6db vendor/github.com/stretchr/testify/mock.(*Mock).Called(0xc4202e24c0, 0xc4204c5080, 0x2, 0x2, 0x1, 0xc42003c9d8, 0x11eae6a)

Contributor guide