V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SpiderXiantang
V2EX  ›  分享创造

使用 Mock 和 Interface 进行 Golang 单测

  •  
  •   SpiderXiantang ·
    xiantang · 2022-01-08 19:02:05 +08:00 · 1782 次点击
    这是一个创建于 836 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在看 golang-reading-list 总结了一些 Golang 单测的实践

    https://vim0.com/post/golang/use_mock_to_test/

    3 条回复    2022-01-11 10:13:00 +08:00
    luozhiyun
        1
    luozhiyun  
       2022-01-09 12:39:55 +08:00
    我正好也写了篇 <Golang 简洁架构实战 https://www.luozhiyun.com/archives/640> 里面用到了 interface 进行 mock 单测
    xing393939
        2
    xing393939  
       2022-01-10 22:42:54 +08:00
    @luozhiyun 你好,看了你的 https://github.com/devYun/go-clean-architecture 我有 2 个问题:
    1 ,wire 这种生成代码的方式好像并没有多方便,反而增加了使用这个工具的成本
    2 ,api 层->service 层->repo 层都需要传递 context 对象,感觉很多余,而且很多框架也是这样做的,不知道为什么不采用线程全局变量来保存 context
    luozhiyun
        3
    luozhiyun  
       2022-01-11 10:13:00 +08:00
    @xing393939
    1. 你觉得多余是因为我里面的实现类太少了,具体你可以尝试去看看 wire 如果做到代码的复用;
    2. 要传递 context 而不用全局变量一方面是在代码里面不想耦合全局变量,另一方面就是每一个请求都有自己的 context ,无法共用一个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1096 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:49 · PVG 02:49 · LAX 11:49 · JFK 14:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.