-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
内联优化导致apply func失效 #157
Comments
xgo从编译器层面解决了这个问题:https://github.com/xhd2015/xgo |
@xhd2015 |
@nabice Thanks for replying, there are two articles introducing the xgo:
As a brief comparison, here is a glance: Overview
API ComparisonThat's just a brief overview. Here is the API comparasion: import "github.com/agiledragon/gomonkey/v2"
func greet(s string) string {
return "hello "+s
}
func TestGreet(t *testing.T){
// patch is global, need to clear when current test ends
gp:=gomonkey.NewPatches()
defer gp.Reset()
gp.ApplyFunc(greet, func(s string)string{
return "huh "+s
})
result := greet("world")
if result!="huh world"{
t.Fatalf("result: %s", result)
}
}
import "github.com/xhd2015/xgo/runtime/mock"
func greet(s string) string {
return "hello "+s
}
func TestGreet(t *testing.T){
// patch is local, automatically cleared when current test ends
mock.Patch(greet, func(s string)string{
return "huh "+s
})
result := greet("world")
if result!="huh world"{
t.Fatalf("result: %s", result)
}
} TraceBesides the mock API, xgo test --strace ./
xgo tool trace TestGreet.json Would result a visual stack trace that helps debugging the tests easier, example from https://github.com/Shibbaz/GOEventBus/pull/11 |
需要用户增加go tool env " -gcflags=all=-l"
社区有计划在go monkey包内部解决这个问题吗
The text was updated successfully, but these errors were encountered: