我正在尝试使用 GoMonkey 模拟一个函数,但我发现它失败了,因为编译器会在程序编译时内联这个函数,所以 GoMonkey 无法模拟它。
那么如何模拟这个函数或者如何模拟其他成员的私有函数呢?
测试代码如下:
patches := gomonkey.ApplyFunc(time.ParseInLocation, func(format string, timeStr string, cstSh *time.Location) (time.Time,error) {
return time.Time{},errors.New("error")
})
defer patches.Reset()
resp:= Example("")
So(resp, ....)
模拟函数
...
t, err := time.ParseInLocation(format, timeStr, cstSh)
...