feat: add support for go-cmp argument matching #1773
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Added support for Google's
go-cmp
library in the mock package for customizable deep comparisons during test assertions:go.mod
to includego-cmp
dependencygoCmpArgument
type inmock/mock.go
to encapsulate comparison values and optionsGoCmp()
helper function to create comparison argumentscmp.Diff()
for precise comparison outputcmp.Options
Changes
Adds new assertion behavior (not a bug fix):
GoCmp()
as an alternative tomock.MatchedBy()
cmp.Option
Motivation
Support more precise comparisons than
reflect.DeepEqual
(e.g., ignoring specific fields)Example usage
Related issues
Might relate to some issues looking for a better way to match arguments:
Match
when diffing mock arguments #1695