Closed linqh1 closed 4 years ago
测试了一下,如果直接跑单元测试的话,进不去gomonkey.ApplyMethod
但是如果开debug的话,又可以
`pathes := gomonkey.ApplyMethod(reflect.TypeOf(&http.Client{}), "Do", func(client http.Client, req http.Request) (*http.Response, error) {
log.Println("enter gomonkey")
return nil, errors.New("mock http request failed")
})
defer pathes.Reset()`
如上代码,直接run不会打印enter gomonkey,但是debug下可以打印出来。。。
兄弟,我也是这个问题,有解吗 而且我现在跑1.13.5也有同样的问题了
测试了一下在go test 与 dlv 的表现,发现是内联函数导致的 dlv 默认关闭了内联函数优化 所以 go test 的时候加上 -gcflags="all=-N -l" 就可以了
前两天试过了,gomonkey自带的所有用例,在go1.14版本都能执行通过
测试了一下在go test 与 dlv 的表现,发现是内联函数导致的 dlv 默认关闭了内联函数优化 所以 go test 的时候加上 -gcflags="all=-N -l" 就可以了
此方法可行,close
go 1.11.4能跑通的单元测试代码,在go1.14中跑不通