Go
https://github.com/golang/mock
Goのinterfaceからmockを生成するツール + 生成したコードをテストコード内で利用するためのライブラリ
s3api.go
ソースファイル内にgo:generateディレクティブを書くことで、 go generate
コマンドで生成されるようになる
テストコード内での使い方
gomockhandler
Goで大量のモックをより統一的に管理し、もっと高速に生成したい!そうだ!!gomockhandlerを使おう!! | メルカリエンジニアリング
testify、mockery
https://github.com/stretchr/testify にもmockパッケージが存在する。
mockの作成は mockery を使う。
gomockに比べた優位性を書いてくれているが正直好みでって感じ。testifyにどっぷり浸かるならこちらでいいと思う
https://vektra.github.io/mockery/#why-use-mockery-over-gomock
mock作成
以下のコマンドで、dir配下のすべてのinterfaceに対してmockが作成される。
--inpackage
をつけることでinterfaceと同じパッケージに mock_<interface名>.go
で作成される。
$ mockery --all --dir=src --inpackage
参考