首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gomock:因为:没有预期的方法"Pod“调用该接收器。

gomock:因为:没有预期的方法"Pod“调用该接收器。
EN

Stack Overflow用户
提问于 2022-02-13 02:56:25
回答 1查看 1.7K关注 0票数 2

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

代码语言:javascript
复制
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)
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-09-27 14:42:34

您需要在TestPodService_Create()中包括这一行:

代码语言:javascript
复制
mockPod.EXPECT().Pod(gomock.Any()).AnyTimes()

根据您期望的目标调整gomock.Any()和.AnyTimes()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71097530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档