Can we add a parameter, such as 'fake', to the model and rpc of goctl, for generating code required to construct svcCtx, in order to decouple dependencies for testing? #3550
Closed as not planned
Description
现在跑测试比较麻烦,相关依赖得运行起来,虽然rpc依赖可以配置NonBlock使得api可以跑起来,但实际依赖的rpc并未运行,所以也无法进行依赖相关的测试。测试就是模拟数据进行代码逻辑验证,依赖的rpc应该也可以fake才是,目前我可以手动fake这些依赖,比如:
然后在Test方法中使用伪造的对象:
这么做没问题,但发现这里面有太多重复工作了,生成的model和rpc本来就有interface的定义,我要自己新建一个文件,去实现生成的那些接口,如果依赖比较多,要花非常多时间,虽然可以改生成model的template,但我想这个脱离第三方依赖进行测试的需求大家应该都有吧?如果model和rpc命令有个fake参数,有这个参数就生成相关fake对象以供单元测试时使用,那就太方便了!故开了这个issue,若有不对或还有其他方法,还请指教,多谢哈!