GitHub
GitHub - google/go-cmp: Package for comparing Go values in tests
Package for comparing Go values in tests. Contribute to google/go-cmp development by creating an account on GitHub.
Go のテストで構造体を比較するとき、標準では reflect.DeepEqual
を使って判定するが、これはdiffが見づらかったり、比較したくないフィールドがあるときに制御がしづらかったりといった不満がある。
そこで役立つのが go-cmp
で、
- diffを見やすくする
- 比較したいフィールドを柔軟に制御できる
といった点で
reflect.DeepEqual
よりも使いやすい。
Goのテスティングライブラリとして testify もあるが、こちらはライブラリ自体が大きかったり、Go標準の書き方からは乖離してしまうというところで利用したくない場合もある。
go-cmp
は以下のようにシンプルに書くことができる。