🔖

gomockの導入と簡単な記述例

2024/01/15に公開

このページでは、gomockの導入と実用例について記述します。

はじめに

GomockはGo言語向けのモック生成ライブラリであり、テスト駆動開発(TDD)やユニットテストを行う際に役立ちます。この記事では、Gomockの導入方法と実用例について解説します。

Gomockの導入方法

1. Gomockのインストール

最初に、Gomockをインストールします。ターミナルで以下のコマンドを実行します。

go install github.com/golang/mock/mockgen

2. プロジェクト内での利用

プロジェクトの任意のディレクトリで、以下のコマンドを実行してモックを生成します。

mockgen -source=interface.go -destination=mock.go

これにより、指定したソースファイルからモックファイルが生成されます。

Gomockの実用例

(1) モックしたいインターフェースを定義します。
      type MyInterface interface {
        Add(x int, y int) (z int)
      }
(2) インターフェースからモックを生成するには、mockgen を使用します。
(3) テストでモックを使用します: 
      func TestMyThing(t *testing.T) {
        mockCtrl := gomock.NewController(t)
        defer mockCtrl.Finish()

        mockObj := something.NewMockMyInterface(mockCtrl)
        mockObj.EXPECT().Add(4, 2).Return(6)
      }

コントローラーは、模擬エコシステムのトップレベルのコントロールを表します。
モック オブジェクトの範囲と有効期間、およびその期待値を定義します。
複数のゴルーチンからコントローラーのメソッドを安全に呼び出すことができます。
各テストでは、新しいコントローラーを作成し、deferで Finish を呼び出す必要があります。

まとめ

GomockはGo言語のテストを効果的に行うためのツールであり、インターフェースのモックを簡単に生成できます。

参照

https://pkg.go.dev/github.com/golang/mock/gomock#Controller

Discussion