【发布时间】:2016-09-01 22:20:55
【问题描述】:
我知道,如果 go 代码的结构使得它被编程为接口,那么模拟是微不足道的;但是,我正在使用无法更改的代码库(这不是我的),但事实并非如此。
这个代码库是高度互连的,没有任何东西被编程到接口,只有结构,所以没有依赖注入。
结构本身只包含其他结构,所以我也不能这样模拟。我不相信我可以对方法做任何事情,而且存在的少数函数不是变量,所以我不知道将它们换掉。继承在 golang 中不是一回事,所以这也是不行的。
在像 python 这样的脚本语言中,我们可以在运行时修改对象,也就是猴子补丁。我可以在 golang 中做一些类似的事情吗?试图在不触及底层代码的情况下找出一些测试/基准测试的方法。
【问题讨论】:
标签: go mocking monkeypatching