我们正在使用 gopkg.in/mgo.v2/bson 与 mongo 对话,它的 API 填充传递的结构而不是返回结果,例如:
func (p *Pipe) One(result interface{}) error {...
当我想模拟/测试使用它的代码时会出现问题。我想模拟这个执行并以某种方式在“结果”中获得 pupulated 值。目前测试有:
query.EXPECT().One(gomock.Any())
所以你可以看到我没有得到任何值,我只是配置 gomock 来检查当我运行我的方法时查询。必须调用一个。我不能像这样传递结构
mystruct := MyStruct{}
query.EXPECT().One(&mystruct)
因为测试代码和实际代码中的 mystruct 是不同的,验证模拟会失败(引用不同)。我正在寻找类似于 mockito 的参数捕获器的东西: https ://static.javadoc.io/org.mockito/mockito-core/2.6.9/org/mockito/ArgumentCaptor.html