小编Cia*_*404的帖子

Golang 测试模拟函数最佳实践

我正在为我的代码开发一些测试(使用testing包),我想知道在测试函数中模拟函数的最佳方法是什么:

我应该将函数作为参数传递吗?在这种情况下,如果该函数调用另一个函数呢?我应该将第一个和第二个函数作为测试函数中的参数传递吗?

注意:一些函数在对象上调用(即 someObj.Create())并使用 HTTP API 调用。

更新澄清:

示例:函数

func f1() error {
  ... //some API call
}

func (s *SomeStruct) f2() error {
  return f1
}

func f3() error {
  return nil
}

func f4() error {
  ...
  err = obj.f2()
  ...
  err = f3()
  ...
}
Run Code Online (Sandbox Code Playgroud)

对于上述内容:如果我想测试 f4,模拟 f2 和 f3 的最佳方法是什么?

如果我将 f2 和 f3 作为参数传递给 f4 它将起作用,但是 f2 测试呢?我应该将 f1 作为参数传递给 f2 吗?

如果是这样,那么 f4 的参数中也应该有 f1 吗?

testing go

3
推荐指数
1
解决办法
9751
查看次数

标签 统计

go ×1

testing ×1