stretchr/testify

mock returns panic when API uses context

Open

#519 ouverte le 14 nov. 2017

Voir sur GitHub
 (15 commentaires) (4 réactions) (0 assignés)Go (1 704 forks)batch import
help wantedpkg-mock

Métriques du dépôt

Stars
 (25 958 stars)
Métriques de merge PR
 (Merge moyen 6j 15h) (2 PRs mergées en 30 j)

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)

Guide contributeur