完全披露:这可能真的很愚蠢,但我是 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 中存根结构的等效方法是什么?
1 回答
森栏
TA贡献1810条经验 获得超5个赞
如果您让 Foo 采用接口而不是结构指针,则在测试中您可以传递实现该接口的模拟或假结构。
有一些模拟库,但由于 Golang 不允许运行时类型编写,它们运行编译时并输出代码。
希望有帮助!
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消