Closed WAY29 closed 2 months ago
我希望实现的是仅仅对某个结构体实例进行mock,我现在不得不写类似于这样的代码:
mocknetAddrs := make(map[*net.TCPAddr]func() string)
addMockNetAddr := func(netAddr *net.TCPAddr, f func() string) {
mocknetAddrs[netAddr] = f
}
var netAddr *net.TCPAddr
var netAddrStringOriginFunc func() string
addMocker(
Mock(GetMethod(netAddr, "String")).
Origin(&netAddrStringOriginFunc).
To(func(self *net.TCPAddr) string {
if f, ok := mocknetAddrs[self]; ok {
return f()
}
return netAddrStringOriginFunc()
}).Build(),
)
// ...
addMockNetAddr(netAddr, func() string {
return addr
})
在这个框架的基础上应该是解决不了的。
以下例子:
希望可以简化成