From 211661fa3b4ead89fc667d03b0ac316ed4715122 Mon Sep 17 00:00:00 2001 From: Aditya Date: Wed, 26 Aug 2026 05:04:02 +0530 Subject: [PATCH] mock: match Anything only in expectations --- mock/mock.go | 2 +- mock/mock_test.go | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/mock/mock.go b/mock/mock.go index 746151e1b..88d0c7bfb 100644 --- a/mock/mock.go +++ b/mock/mock.go @@ -1064,7 +1064,7 @@ func (args Arguments) Diff(objects []interface{}) (string, int) { } default: - if assert.ObjectsAreEqual(expected, Anything) || assert.ObjectsAreEqual(actual, Anything) || assert.ObjectsAreEqual(actual, expected) { + if assert.ObjectsAreEqual(expected, Anything) || assert.ObjectsAreEqual(actual, expected) { // match output = fmt.Sprintf("%s\t%d: PASS: %s == %s\n", output, i, actualFmt, expectedFmt) } else { diff --git a/mock/mock_test.go b/mock/mock_test.go index c30f526c4..e9246d22f 100644 --- a/mock/mock_test.go +++ b/mock/mock_test.go @@ -2015,18 +2015,18 @@ func Test_Arguments_Diff_MissingArgument_StillMatchesWhenPresent(t *testing.T) { assert.Equal(t, 0, count) } -func Test_Arguments_Diff_WithAnythingArgument(t *testing.T) { +func Test_Arguments_Diff_WithAnythingAsActualArgument(t *testing.T) { t.Parallel() var args = Arguments([]interface{}{"string", 123, true}) - var count int - _, count = args.Diff([]interface{}{"string", Anything, true}) + diff, count := args.Diff([]interface{}{"string", Anything, true}) - assert.Equal(t, 0, count) + assert.Equal(t, 1, count) + assert.Contains(t, diff, `(string=mock.Anything) != (int=123)`) } -func Test_Arguments_Diff_WithAnythingArgument_InActualToo(t *testing.T) { +func Test_Arguments_Diff_WithAnythingAsExpectedArgument(t *testing.T) { t.Parallel() var args = Arguments([]interface{}{"string", Anything, true}) @@ -2224,6 +2224,15 @@ func Test_MockMethodCalled(t *testing.T) { m.AssertExpectations(t) } +func Test_MockMethodCalled_AnythingAsActualArgument(t *testing.T) { + t.Parallel() + + m := new(Mock) + m.On("foo", "hello").Return("world") + + require.Panics(t, func() { m.MethodCalled("foo", Anything) }) +} + func Test_MockMethodCalled_Panic(t *testing.T) { t.Parallel()