完全披露:这可能真的很愚蠢,但我是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中存根结构的等效方法是什么?
如果你有Foo采用接口而不是结构指针,那么在测试中你可以传递一个实现该接口的模拟或假结构。
有一些模拟库但是因为Golang不允许运行时类型编写,所以它们运行编译时和输出代码。
希望有所帮助!