Package for comparing Go values in tests
Last updated Jul 8, 2026
4.7k
Stars
224
Forks
57
Issues
+5
Stars/day
Attention Score
87
Language breakdown
Go 100.0%
▸ Files
click to expand
README
Package for equality of Go values
[][godev] [
][actions]
This package is intended to be a more powerful and safer alternative to reflect.DeepEqual for comparing whether two values are semantically equal.
The primary features of cmp are:
- When the default behavior of equality does not suit the needs of the test,
- Types that have an
Equalmethod may use that method to determine equality.
- If no custom equality functions are used and no
Equalmethod is defined,
reflect.DeepEqual. Unlike reflect.DeepEqual, unexported
fields are not compared by default; they result in panics unless suppressed
by using an Ignore option (see cmpopts.IgnoreUnexported) or explicitly
compared using the AllowUnexported option.
See the [documentation][godev] for more information.
This is not an official Google product.
[godev]: https://pkg.go.dev/github.com/google/go-cmp/cmp [actions]: https://github.com/google/go-cmp/actions
Install
go get -u github.com/google/go-cmp/cmp
License
BSD - See [LICENSE][license] file
[license]: https://github.com/google/go-cmp/blob/master/LICENSE
🔗 More in this category