繁体   English   中英

如何使用 testify/mock 在 golang 中模拟数据库层

[英]how to mock database layer in golang using testify/mock

我正在尝试在服务器上运行单元测试,并使用“github.com/stretchr/testify/mock”来模拟数据库层。 把所有的代码放在这里会让它变得非常混乱,所以我创建了一个小项目,它将给出我的代码结构的想法以及我真正想要实现的目标“ https://github.com/utkarsh17ife/goMockPractice ”。 您可以提取此代码并运行“go test ./...”(不确定在此处提供 github 链接是否正确,但我觉得这会让事情变得更容易)

Server struct 有一个字段 db,它是 interface 类型,所以当我们创建一个普通服务器时,db 分配给真实的数据库,但在测试时分配给模拟数据库。 但问题是我无法在数据库上执行以下操作

srv.db.On("Insert", "some data").Return(true)
srv.db.AssertExpectations(t)

由于 db 接口没有“On”和“AssertExpectations”字段。

看起来这不是实现模拟的方法,请让我知道测试它的正确方法。

您可以将任何您想要的函数添加到您的模拟结构中。 唯一的限制是它必须至少实现DbStore接口。 如果您的测试需要它们,则可以添加任何附加功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM