【Golang】VSCodeで自動生成されるテストコードをカスタマイズする
こんにちは。Goのテスト、書いていますか?
私はめちゃめちゃ書いています。
VSCodeに拡張機能(vscode-go)を入れることで、テストコードを自動生成することができることを最近知ったのですが、これがとても便利です。
使い方は以下の記事でまとめられています。
これはめちゃめちゃ便利なのですが、デフォルトだと少し物足ないところがあったので、カスタムテンプレートを作成しました。
GitHub - Magaming/gotests-templates
vscode-goは内部でgotestsを使っているので、それ用のテンプレートを用意している形です。
具体的には次のようなことをしています。
- go-cmpを使う
- 標準だと
reflect.DeepEqual
で比較しているが、これだとtime.Time型を含んだ構造体の比較とかで死ぬ- go-cmpは、そこだけ無視して比較ができるのでめちゃめちゃ便利
- 標準だと
- %v --> %#v にする
- フィールド名が出たほうがデバッグに役立ちそうなのでそうしている
- あとはメッセージの文言少し変えているけどまぁこれは好みの問題
テンプレートをローカルに置いて、VSCodeのsetting.jsonに設定を加えれば反映されてあとはハッピーです。
"go.generateTestsFlags": [ "-template_dir", "/your_local_directory/gotests-templates/templates" ]
皆様もテンプレート作って幸せな生活をしてはいかがでしょうか。