gomock:因为:对于该接收方,方法"Pod"没有预期的调用



我试图模拟mysql,但出现错误:"因为:没有预期的方法"的调用;Pod";对于那个接收器"我确认我已经用Mockgen工具生成了Pod方法,下面是我的代码

func TestPodService_Create(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
mockFactory := store.NewMockFactory(ctrl)
mockPod := store.NewMockPodStore(ctrl)
pods := fake.FakePod(10)
mockPod.EXPECT().Create(gomock.Eq(context.TODO()), gomock.Eq(pods[0])).Return(nil)

type fields struct {
store    store.Factory
redisCli redis.RedisCli
}
type args struct {
ctx context.Context
pod *model.Pod
}
tests := []struct {
name    string
fields  fields
args    args
wantErr bool
}{
// TODO: Add test cases.
{
name: "test case 1",
fields: fields{store: mockFactory,},
args: args{
ctx: context.TODO(),
pod: &pods[0],
},
wantErr: false,
},
}
for _, tt := range tests {
fmt.Printf("begin to testn")
podService := &PodService{store: tt.fields.store}
err := podService.Create(tt.args.ctx, tt.args.pod)
assert.Equal(t, tt.wantErr, err!=nil)
}
}

您需要在TestPodService_Create((中包括此行:

mockPod.EXPECT().Pod(gomock.Any()).AnyTimes()

调整gomock。Any((和.AnyTime((来实现您想要的目标。

最新更新