对于 Web 系统写单元测试 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ray1888
V2EX    程序员

对于 Web 系统写单元测试

  •  
  •   ray1888
    ray1888 2018-08-14 10:26:57 +08:00 3464 次点击
    这是一个创建于 2625 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对于 Web 系统,大家是怎样去写单元测试?是把每个接口里面的处理数据数据类单独写完单元测试(假设一个接口中有多个数据类需要处理),然后再用 api 测试(我可以理解为集成测试)?还是直接只做 api 测试,看输入输出?

    9 条回复    2018-08-14 14:30:25 +08:00
    MarksGui
        1
    MarksGui  
       2018-08-14 10:33:28 +08:00
    关注一下
    casztg
        2
    casztg  
       2018-08-14 10:49:46 +08:00
    我也想知道。。。一直以来都是 API 测试。。。。。。。。。
    dev 环境
    cn 测试环境
    预发布环境
    线上环境
    lcorange
        3
    lcorange  
       2018-08-14 11:33:55 +08:00
    我写 spring boot 的时候,rest 层基本没有任何代码,除了格式转换,就是直接调用 manager 或 service 里面的函数。
    所以代码里用 JUnit 覆盖所有 manager、service 和 dao 的代码。
    至于 rest 层我就用 postman 批量运行,随便测测格式转换是否有问题。
    limuyan44
        4
    limuyan44  
       2018-08-14 12:12:29 +08:00 via Android
    你怎么知道单元测试对不对,是不是得给单元测试写单测,无限循环中
    tinywhale
        5
    tinywhale  
       2018-08-14 12:20:35 +08:00
    用 elixir 的人表示这根本不是个问题,在原有的基础上加性能测试就好了
    nine
        6
    nine  
       2018-08-14 12:32:18 +08:00
    API 级别的和业务级别的都要有。
    如果业务不稳定,可以先只写 API 级别的。

    测试用例要求覆盖所有异常情况。
    hgzz
        7
    hgzz  
       2018-08-14 12:43:22 +08:00
    Mock 工具 Mockito 和 PowerMock
    leekafai
        8
    leekafai  
       2018-08-14 12:45:41 +08:00
    两个都可以,API 测试是为了确认最终暴露数据的正确性,单元测是为了测试抽象方法的可靠性,如果代码复用率低,例如大部分逻辑直接写到路由去,这个时候写单元测试还要去先抽象。
    ray1888
        9
    ray1888  
    OP
       2018-08-14 14:30:25 +08:00
    @leekafai 我现在就是遇到你说的后面的那个问题,如果我想有效单元测试,需要先把那些根据功能全部拆分到类中才能测试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1219 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:25 PVG 01:25 LAX 10:25 JFK 13:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86