-
Notifications
You must be signed in to change notification settings - Fork 161
Open
Description
Requested feature
Sometime i want to see the call stack to my mock declaration instead of a single file:line
Why the feature is needed
Some times i need to name my mock declarations under a helper function to reuse them with parameters. And when i do it, i dont see clearly where test call it. I see only the declaration, but not file:line in a test
(Optional) Proposed solution
I want to add new method WithStack(lvl int) to the Call struct, which will modify
Call.origin parameter, so i can see something like this
my_test.go:132
myhelper.go:42
in it
Let me show my test example
package main
import (
"testing"
"github.com/stretchr/testify/assert"
"go.uber.org/mock/gomock"
)
func Test_Alert(t *testing.T) {
ctrl := gomock.NewController(t)
m := NewMockMessanger(ctrl)
alert := NewAlert(m).WithInfo("info")
messageWillBeSentSuccessfuly(m)
err := alert.Notify()
assert.NoError(t, err)
}
func messageWillBeSentSuccessfuly(m *MockMessanger) {
m.EXPECT().SendMessage("invalid msg").Return(nil).WithStack(2)
}
in this case i will get an error
=== RUN Test_Alert
service.go:24: Unexpected call to *main.MockMessanger.SendMessage([info]) at service.go:24 because:
expected call at main_test.go:23 doesn't match the argument at index 0.
Got: info (string)
Want: is equal to invalid msg (string)
controller.go:97: missing call(s) to *main.MockMessanger.SendMessage(is equal to invalid msg (string)) main_test.go:23
controller.go:97: aborting test due to missing call(s)
--- FAIL: Test_Alert (0.00s)
FAIL
FAIL github.com/rusinov-artem/go-exercise/e00012 0.006s
FAIL
But i want
=== RUN Test_Alert
service.go:24: Unexpected call to *main.MockMessanger.SendMessage([info]) at /service.go:24 because:
expected call at
main_test.go:15
main_test.go:22
doesn't match the argument at index 0.
Got: info (string)
Want: is equal to invalid msg (string)
controller.go:97: missing call(s) to *main.MockMessanger.SendMessage(is equal to invalid msg (string))
main_test.go:15
main_test.go:22
controller.go:97: aborting test due to missing call(s)
--- FAIL: Test_Alert (0.00s)
FAIL
FAIL github.com/rusinov-artem/go-exercise/e00012 0.004s
FAIL
Metadata
Metadata
Assignees
Labels
No labels