登录
首页 >  Golang >  Go问答

如何使用模拟对象进行单元测试

来源:stackoverflow

时间:2024-02-19 15:27:28 411浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《如何使用模拟对象进行单元测试》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

我想模拟 go 中的测试方法。我无法找出模拟通常遵循的任何步骤/模式。

考虑下面的代码并帮助我理解。

封装 fetchclient

client.go

type 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
}

打包 fetchclientdata

fetchdata.go

// Function GetData that accepts a client ID as argument and returns client URL
func GetData(ID string) (*fetchClient.Client.URL) {
    param := (*Client).GetURL(ID) 
    return param
}

fetchdata_test.go //想知道如何按照下面的问题进行模拟。

问题:如何在 fetchdata_test.go 文件中模拟一个假的 geturl 函数,以便它不会调用 fetchdata.go 文件中的实际 geturl 函数,而是模拟它。


解决方案


可能有两种方法可以解决您的问题。我只能根据您发布的代码做出一些假设,代码非常少。但是您要么必须创建通过 http 测试实现您的函数的模拟库,要么您可以将函数调用迁移到要使用/使用的接口中,以便您可以在 GoMock 中使用 MockGen 功能。后者可能会更干净,更接近 Go 最佳实践。

查看他们的文档。 https://github.com/golang/mock

今天关于《如何使用模拟对象进行单元测试》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>