我正在为我的代码开发一些测试(使用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 吗?