-1

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

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

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

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

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

4

1 回答 1

0

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

于 2019-02-14T04:43:33.257 回答