gpt4 book ai didi

unit-testing - 是否可以选择使用类似于 mockito argument captor 的东西?

转载 作者:IT王子 更新时间:2023-10-29 02:10:16 25 4
gpt4 key购买 nike

我们使用 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 不同,验证 mock 将失败(引用不同)。我正在寻找类似于 mockito 的参数捕获器的东西: https://static.javadoc.io/org.mockito/mockito-core/2.6.9/org/mockito/ArgumentCaptor.html

最佳答案

这可以通过 Do 实现.

poy 复制和粘贴 Github 示例.

var capturedArgs []int

someMock.
EXPECT().
SomeMethod(gomock.Any()).
Do(func(arg int){
capturedArgs = append(capturedArgs, arg)
})

引用:https://github.com/golang/mock/pull/149

关于unit-testing - 是否可以选择使用类似于 mockito argument captor 的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com