Go でテストコードを書く時に struct などを比較するようなコードを書く必要がありますが、通常は reflect.DeepEqual
が使われるようで、自分が参画していたプロジェクトでも reflect.DeepEqual
が使われていました。
が、Go には同じような機能を持った go-cmp
なるものもあり、こちらの方が明らかに差分が見やすい!ということでずいぶん前から go-cmp
の方を使うようになり便利に使っていました。
しかし、今となっては今まで気づかなかったのが不思議なのですが、この go-cmp
はデフォルトでは error
の比較はできません。
そこで調べてみたところ、go-cmp
は本当にいろいろと柔軟な比較ができることが分かりました。
その内容をここでメモがてら紹介、、、、と思ったのですが、下記のページにとてもよくまとめられているのでリンクにとどめます(/_\*)
![](https://res.cloudinary.com/zenn/image/upload/s--tMvLQ2FQ--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_66:go-cmp%25E3%2581%25AE%25E5%2590%2584Option%25E7%25B4%25B9%25E4%25BB%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:tMinamiii%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzMxZWYxMmZhMzAuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png)
go-cmpの各Option紹介
zenn の記事なので消えてなくなることもたぶんないでしょう(^_^;
また go-cmp
で困ったら上記のページを参考にさせていただこうと思います(/_\*)
コメント