2

我正在尝试模拟 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 test\n")
        podService := &PodService{store: tt.fields.store}
        err := podService.Create(tt.args.ctx, tt.args.pod)
        assert.Equal(t, tt.wantErr, err!=nil)
    }
}
4

0 回答 0