💬
【Go言語】go generateでgomockを一括で生成してみた
はじめに
初めまして。eisukeです。
MidraLab
というコミュニティでゲーム開発者が誰でも簡単にサーバーを建てられるようなOSSプロジェクトを始めていてその一環の開発で発見したことや導入したことをブログに書き留めています!
今回は...
CIに組み込んで自動でmockを生成したかったので調べていたらgo generate
で指定の.go
のmockを作成できることが分かったので実際にやってみました。
今回のプロジェクト
gomockセットアップ
Install
go install go.uber.org/mock/mockgen@latest
mockを作成したいinterface
の上に指定のコマンドをコメントのように書きこむ
//go:generate mockgen -source=handler_interface.go -destination=../../mocks/handler_mock.go -package=mocks
type UserHandlerInterface interface {
UserCreateHandle() bunrouter.HandlerFunc
UserGetHandle() bunrouter.HandlerFunc
ScoreUpdateHandle() bunrouter.HandlerFunc
UserRankingGetHandle() bunrouter.HandlerFunc
DestroyHandle() bunrouter.HandlerFunc
}
実行
rootプロジェクトに移動
PS D:\Samples\basic-game-server-with-mysql3> cd app
PS D:\Samples\basic-game-server-with-mysql3\app>
go generateする
PS D:\Samples\basic-game-server-with-mysql3\app> go generate ./...
以下のように自動で生成されることが確認できます!!
まとめ
go generate
の可能性にはとてもワクワクしています。いろんなことが自動化できそうだと感じました!実際にこれをCIに導入してテストを自動生成するところまで頑張っていきたいと思います。
midra-lab.notion.site/MidraLab-dd08b86fba4e4041a14e09a1d36f36ae 個人が興味を持ったこと × チームで面白いものや興味を持ったものを試していくコミュニティ
Discussion