为了账号安全,请及时绑定邮箱和手机立即绑定

模拟结构参数

模拟结构参数

Go
波斯汪 2023-03-29 17:21:02
完全披露:这可能真的很愚蠢,但我是 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 不允许运行时类型编写,它们运行编译时并输出代码。

希望有帮助!


查看完整回答
反对 回复 2023-03-29
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信