V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
iamzuncle
V2EX  ›  Go 编程语言

关于 web server 项目的接口测试

  •  
  •   iamzuncle · 2023-05-27 09:51:20 +08:00 · 1653 次点击
    这是一个创建于 546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新来这家公司要求写接口测试用例,但是里面涉及到 mongo mysql redis 等,难道都要 mock 吗,现在用的 sqlmock+mongo 的一个不太致命的套壳 mock 工具,感觉写的相当不规范,我想请问下大家在写 web 项目的接口测试用例的时候都是怎么写的或者用了哪些框架,现在写的感觉就像是在硬堆代码

    9 条回复    2023-05-27 18:43:03 +08:00
    matrix1010
        1
    matrix1010  
       2023-05-27 10:13:06 +08:00
    接口测试也算集成测试了吧。一般来说不推荐 mock 数据库,比如 mysql 常见做法是在启动测试时直接同时启动一个 transaction ,然后测试完自动回滚,Django 就是这么做的。mongo 和 redis 可能需要手工写代码进行清理,但代码是通用的写一次所有测试都能用。另外一个需要注意的是如果是并行测试你可能需要给表名加个随机数,或者 redis 随机选取一个 database
    DefoliationM
        2
    DefoliationM  
       2023-05-27 10:13:29 +08:00
    不用完全 mock ,把对 mongo mysql redis 的调用都写成接口,mock 只需要 mock 接口就行了。
    matrix1010
        3
    matrix1010  
       2023-05-27 10:30:52 +08:00
    iamzuncle
        4
    iamzuncle  
    OP
       2023-05-27 11:30:18 +08:00
    @matrix1010 学到了,v2 大佬还是多啊,能学到好多经验,这个方法好好
    iamzuncle
        5
    iamzuncle  
    OP
       2023-05-27 11:31:06 +08:00
    @DefoliationM 大佬,mock 接口是指怎么做呢,小弟经验不是很丰富,没有没接触过所以构建不出思路,可以举个例子吗
    IvanLi127
        6
    IvanLi127  
       2023-05-27 12:38:25 +08:00 via Android
    你说的接口测试是啥? E2E ?
    wheeler
        7
    wheeler  
       2023-05-27 12:40:35 +08:00 via iPhone
    DefoliationM
        8
    DefoliationM  
       2023-05-27 12:51:21 +08:00
    securityCoding
        9
    securityCoding  
       2023-05-27 18:43:03 +08:00 via Android
    gomock
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2144 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:04 · PVG 09:04 · LAX 17:04 · JFK 20:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.