gpt4 book ai didi

go - 模拟结构参数

转载 作者:IT王子 更新时间:2023-10-29 02:36:53 28 4
gpt4 key购买 nike

完全披露:这可能真的很愚蠢,但我是 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 中 stub 结构的等效方法是什么?

最佳答案

如果您让 Foo 采用接口(interface)而不是结构指针,则在测试中您可以传递实现该接口(interface)的模拟或假结构。

有一些模拟库,但由于 Golang 不允许运行时类型编写,它们运行编译时并输出代码。

希望对您有所帮助!

关于go - 模拟结构参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52214775/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com