testify
testify copied to clipboard
mock: nothing does match mock.Anything
Having more arguments in a mock expectation than the interface has does not fail if those expectations match the string (Missing). This is only really confusing if the matcher is fairly generic, like mock.Anything.
Perhaps the value used here should be a private type?
Testify: v1.7.4 Go: go version go1.18 darwin/amd64
package kata
import (
"testing"
"github.com/stretchr/testify/mock"
)
type MyMock struct {
mock.Mock
}
func (t *MyMock) Do() {
t.Called()
}
func TestFoo(t *testing.T) {
m := &MyMock{}
m.Test(t)
m.On("Do", mock.Anything, mock.AnythingOfType("string"), "(Missing)", mock.MatchedBy(func(s string) bool {
t.Errorf("%q", s)
return true
})).Return()
m.Do()
m.AssertExpectations(t)
}
Running tool: /usr/local/go/bin/go test -timeout 30s -coverprofile=/var/folders/06/jjq25lws0cbcxv37ns0hb_mm0000gn/T/vscode-gohOmAs5/go-code-cover github.com/brackendawson/kata -race
--- FAIL: TestFoo (0.00s)
/Users/alandaws/src/github.com/brackendawson/kata/kata_test.go:21: "(Missing)"
/Users/alandaws/src/github.com/brackendawson/kata/kata_test.go:21: "(Missing)"
/Users/alandaws/src/github.com/brackendawson/kata/kata_test.go:25: PASS: Do(string,mock.AnythingOfTypeArgument,string,mock.argumentMatcher)
FAIL
coverage: 0.0% of statements
FAIL github.com/brackendawson/kata 0.195s
FAIL