agiledragon / gomonkey

gomonkey is a library to make monkey patching in unit tests easy
MIT License
1.93k stars 178 forks source link

希望提供一个方法把double对应的original取出来 #102

Closed Nomango closed 1 year ago

Nomango commented 1 year ago

例如

gomonkey.ApplyFunc(NewClient, func() *Client {
    // 在这里会需要用到原始的 NewClient,但实际已经被替换掉了
    return NewClient()
})

在 patch 前调用 NewClient 创建好实例也许可以解决这个问题,但是我的场景不太方便这么做,所以希望可以有个方法把原始函数取出来,类似这样:

var patches *gomonkey.Patches
patches = gomonkey.ApplyFunc(NewClient, func() *Client {
    original := patches.GetOriginal(NewClient)
    return original.(func() *Client)()
})
Nomango commented 1 year ago

提了英文issue