[Go] gomock を使って特定の関数の返り値を変更する
            作成日: 2022年11月02日
          
          Return 関数を使用することで、モックとして作成した関数の返り値を任意の値に変更することができます。
まずテスト対象の AddNumbers 関数をインターフェースで定義します。
package main
type DummyInterface interface {
    AddNumbers(a int, b int) int
}
次にテストコードを作成します。
package main
import (
    "testing"
    "github.com/golang/mock/gomock"
)
func TestAddNumbers(t *testing.T) {
    ctrl := gomock.NewController(t)
    defer ctrl.Finish()
    mockDummy := NewMockDummyInterface(ctrl)
    mockDummy.EXPECT().AddNumbers(gomock.Any(), gomock.Any()).Return(10)
    n := mockDummy.AddNumbers(3, 5)
    if n != 10 {
        t.Fatal("n is not 10")
    }
}
説明
- mockDummy.EXPECT().AddNumbers(gomock.Any(), gomock.Any()).Return(10)で、- AddNumbers関数が任意の引数で実行され、- 10を返すように挙動を書き換えます。
- モックとして作成された mockDummyのAddNumbers関数を実行し、返り値が10であることを確かめます。
- このテストは PASS となります。モックとして作成した AddNumbers関数が10を返していることを確認できました。