如何设置模拟函数的返回值?

Veb*_*osa 5 go gomock

我正在使用gomock创建模拟对象以进行单元测试。下面为模拟对象提供了一个名为 GetQuestionById 的方法,并告诉模拟控制器期望使用参数 1 调用该方法:

gw.EXPECT().GetQuestionById(1)
Run Code Online (Sandbox Code Playgroud)

但是我如何指定模拟方法应返回特定值?

Veb*_*osa 7

当您调用 时,它最终会调用模拟控制器上的gw.EXPECT().GetQuestionById(1)方法。返回 a ,并且有一个名为的方法可以完全满足您的要求:RecordCallRecordCallCallCallReturn

gw.EXPECT().GetQuestionById(1).Return(Question{1, "Foo"})
Run Code Online (Sandbox Code Playgroud)