我想模拟在 Go 中进行测试的方法。我无法弄清楚模拟通常遵循的任何步骤/模式。考虑下面的代码并帮助我理解。包 fetchClient客户端.gotype Client struct { URL string}type ClientData struct { ID string }func (p *Client) GetURL(ID string) (*ClientData) { data := &ClientData{} //Some work to store client information into data struct and return it return data}包 fetchClientDataFetchData.go// Function GetData that accepts a client ID as argument and returns client URLfunc GetData(ID string) (*fetchClient.Client.URL) { param := (*Client).GetURL(ID) return param}FetchData_test.go //想知道如何按照下面的问题进行模拟。问题:如何在 FetchData_test.go 文件中模拟一个虚假的 GetURL 函数,使其不调用 FetchData.go 文件中的实际 GetURL 函数,而是模拟它。
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
可能有两种方法可以解决您的问题。我只能根据您发布的代码非常少做一些假设。但是您要么必须创建通过 http 测试实现函数的模拟库,要么可以将函数调用迁移到要使用/消费的接口中,以便您可以在 GoMock 中使用 MockGen 功能。后者可能会更干净,更接近 Go Best Practices。
查看他们的文档。 https://github.com/golang/mock
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消