完全公开:这可能真是愚蠢,但是我是Go语言的新手,而且多年来没有使用静态类型的语言。
我有一个看起来像这样的函数:
func Foo(bar *bar.BarStruct) {
// do stuff with bar
}
在此示例中,bar是第三方程序包,* bar.BarStruct是指向结构的指针。
我想在测试bar.BarStruct结构时编写Foo函数的测试。我如何将* bar.BarStruct存根?
例如,在JavaScript中,我只会做类似的事情
test('does a Foo', () => {
const mockBarStruct = {
someProp: 123
}
Foo(mockBarStruct)
// rest of test
})
在Go中存根结构的等效方法是什么?
答案 0 :(得分:2)
如果让Foo接受接口而不是结构指针,则在测试中,您可以传递实现该接口的模拟或伪造结构。
有一些模拟库,但是由于Golang不允许编写运行时类型,因此它们会运行编译时并输出代码。
希望有帮助!