[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
を返していることを確認できました。