猿问

Go 中的模拟接收器功能

我正在尝试对调用该结构中的其他接收器函数的接收器函数进行单元测试。


假设我想测试 Three() 并在下面模拟对 two() 的调用:


type MyStruct struct {

    a string

    b string

}


func (m *MyStruct) one() int {

    return 2

}


func (m *MyStruct) two() int {

    return m.one() * 2

}


func (m *MyStruct) Three() int {

    return m.two() * 2

}

我正在遵循以下答案中的方法二。


我为每个想要单元测试的函数创建了一个自定义构造函数,并使用模拟版本覆盖这些方法。但我认为一旦函数数量增加,维护代码可能并不容易。


是否有任何首选方式来模拟此类功能?我希望官方文档有一些关于如何在不同场景中模拟事物的指南,类似于 Python 上的 mox 提供的内容。


另外,请注意,我不想使用第三方模拟库。


MMMHUHU
浏览 137回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答