问题标签 [gomock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1218 浏览

go - gomock,去,芒果包,MongoMock

我正在尝试使用 gomock 模拟以下方法

我的界面

我收到以下错误。有人可以帮忙吗

--- 失败:TestGetS (0.00s) mongoManager_test.go:20: 缺少对 *mocks.MockMongoManager.GetS 的调用(等于 cacargroup)/Users/charles/workspace/src/bitbucket.org/tekion/tbaas /mongoManager/mongoManager_test.go:16 mongoManager_test.go:20: 由于缺少调用而中止测试失败退出状态 1

0 投票
1 回答
1406 浏览

go - 如何在 go lang 中模拟 memcache 进行单元测试?

我想在 go lang 中模拟 memcache 缓存数据以避免授权我尝试使用 gomock 但无法解决,因为我没有任何接口。

尝试使用 gomock 模拟

gen mock for utils for get access controler (1) 定义一个你想模拟的接口。

(2) 使用mockgen从接口生成一个mock。(3) 在测试中使用mock:

0 投票
0 回答
870 浏览

go - 解决 gomock 导入周期

如何解决 和 之间的导入github.com/golang/mock/gomock周期golang.org/x/net/context?据我所知,这个循环存在于两个包之间,我不能在内部修改它们中的任何一个。

目前这些是我的进口:

这是我在运行时收到的确切错误消息withmock go test

0 投票
1 回答
2060 浏览

go - 解决 mockgen 的导入包冲突

我有一个包冲突,我收到以下错误: mockgen -package=mocks -source=myproto.pb.go -destination=mocks/my_mocks.go imported package collision: "foo" imported twice

我看到一个很明显的导入: import foo "blah/blah/foo"

但我不知道从哪里开始追踪重复导入(也不知道它来自哪里)。对我来说这似乎很奇怪,因为我正在导入 myproto.pb.go 就好了,所以我想知道是否真的存在重复导入的问题。此外,GoLand 没有显示任何问题。

我希望有人可以指出我的方向,以获取有关重复导入来自何处的更多信息,检查是否存在某些问题和/或解决该问题。

0 投票
1 回答
1083 浏览

go - 如何测试一个函数在 goroutine 中被调用?

我想确保我们通过调用具有正确参数的函数来启动一个 goroutine。

例如:

当我运行这个测试时,它失败了,因为(我相信)MyMockFunc只有在测试已经完成运行后才会被调用。

有没有办法通过调用具有正确参数的函数来测试我是否启动了 goroutine?

注意:理想情况下,我想保持传递给的参数不变MyMockFunc(例如,不添加通道参数)。

0 投票
1 回答
12486 浏览

unit-testing - 使用 Gomock 进行测试返回错误:预期调用已被调用最大次数

我正在使用 Gomock https://godoc.org/github.com/golang/mock和 mockgen

此测试的源代码是:

此源文件的测试用例在这里:

当我运行测试时,我收到以下错误:

sqs\controller.go:150:在 path_to_mocks_package/mocks/mock_messenger.go:38 处意外调用 *mocks.MockMessenger.GetMessage([]) 因为:在 path_to_sqs_package/sqs/sqs_test.go:35 处的预期调用已被调用最大次数。失败

如果我按如下方式编写自己的模拟,则测试用例将成功执行:

0 投票
1 回答
260 浏览

go - 如何处理随机输入和输出值

我有一个定义 Downloadfile 函数的包装器接口。问题是其中一个参数有一个随机的临时目录名,而输出是一个随机的临时文件名。如何使用https://github.com/golang/mock模拟它,以便测试 addFile 函数

0 投票
1 回答
1767 浏览

go - 在 TestMain 中使用 testing.T

我想运行一些需要启动 GRPC 模拟服务器的测试用例。我正在gomock为此使用库。要启动服务器,我必须将类型变量传递testing.T给此函数 - gomock.NewController()。由于这是对所有测试用例的一种初始化,我想在TestMain. 但TestMain只能访问testing.M那么我该如何处理这种情况?在 ? 中创建一个新testing.T结构TestMain?它会起作用吗?

0 投票
1 回答
910 浏览

unit-testing - 如何确保所有异步函数在执行延迟之前运行

我有一个功能说

我必须为Myfunction(). 我为此使用 go-mock 。也有嘲讽x

现在的问题是我的测试运行成功,但不知何故最后它惊慌失措地说,那个调用mockX.RunAsync()丢失了。我认为这是因为在我的 RunAsync 被存根之前执行了延迟。如何确保所有 Async 函数在执行 defer 之前运行。

0 投票
1 回答
485 浏览

unit-testing - 在 Go 单元测试中使用两个不同的模拟

我正在学习第一次在 Go 中使用 mocks 进行单元测试,使用 gomock 的 mockgen 实用程序。我的单元测试工作正常,除了其中一个。被测方法有两个依赖项:一个依赖于数据库,另一个依赖于它调用 rest api 的外部服务。数据库的模拟 (mockRepo) 工作正常,因为被测方法正确调用模拟而不是实际的 repo 代码。然而,用于休息客户端的模拟继续调用实际的休息客户端,而不是模拟代码。我不知道为什么。有人可以解释原因并帮助解决吗?

这是我的单元测试:

这是 NewTestService 的代码:

将相同的模拟控制器分配给两个不同的模拟对象是否存在问题?不太确定这里发生了什么。任何帮助表示赞赏。