V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DoraJDJ
V2EX  ›  Node.js

新手求教,如何给 Express 网页应用编写单元测试以及代码覆盖率测试?有没有比较简单的例子可供参考吗?

  •  
  •   DoraJDJ · 2016-06-29 23:44:44 +08:00 · 2999 次点击
    这是一个创建于 3069 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前在 Google 里搜索过一些教程,不过好像很多都比较偏 RESTful API 相关,而且好像没有比较直观明了的案例。
    10 条回复    2016-06-30 22:31:42 +08:00
    ncwhale
        1
    ncwhale  
       2016-06-30 00:07:03 +08:00   ❤️ 1
    mocha + istanbul + should + 任何一个你用的习惯的 Node HTTP 库
    DoraJDJ
        2
    DoraJDJ  
    OP
       2016-06-30 00:09:38 +08:00
    @ncwhale 相当于先启动 Web 服务器,然后通过 request 之类的库一个个访问地址进行测试吗?
    ncwhale
        3
    ncwhale  
       2016-06-30 00:18:57 +08:00
    @DoraJDJ 当然是这样喵……
    haozhang
        4
    haozhang  
       2016-06-30 08:49:18 +08:00 via iPhone   ❤️ 1
    如果是 express 的话有一个配套的测试库,不过名字忘了。其实测试也分很多,像你提到的开 request 去测试属于功能测试而不是单元测试。
    DoraJDJ
        5
    DoraJDJ  
    OP
       2016-06-30 10:31:32 +08:00
    @haozhang 我记得像 Mocha 还有 Istanbul 都有非官方开发的 Express 中间件,但是这样只能用在人工测试环境,不方便用在 CI 上
    ncwhale
        6
    ncwhale  
       2016-06-30 10:38:40 +08:00
    顺便现在都在用 koa@next 做开发了喵~ express 暂时都没在用了喵~
    FlowMEMO
        7
    FlowMEMO  
       2016-06-30 21:39:33 +08:00
    楼主想进行哪种测试? 一种测试是测试页面的功能,比如点击按钮背景变色这种.  另一种是测试 api ,比如向哪个地址发请求应该返回什么东西. 这两种方法是不一样的.
    DoraJDJ
        8
    DoraJDJ  
    OP
       2016-06-30 21:44:20 +08:00
    @FlowMEMO 这是我之前用 Node.js 写的网页应用: https://github.com/DoraJDJ/project-television
    最近开了 Greenkeeper 后,每次提醒依赖更新的时候都会提醒 Untested (未测试),这样我就不能确定依赖更新后程序还能不能用。
    所以我想弄个应用测试,这样每次依赖更新的时候就能进行自动化的测试,以确定会不会出问题。
    FlowMEMO
        9
    FlowMEMO  
       2016-06-30 22:27:17 +08:00   ❤️ 1
    你这个前后端都要做测试了
    前端测试用可以直接上 headless browser, jasmine, casperjs 或者 seleuim 都可以,试一试.
    后端测试相对简单些,楼上说的都可以.

    如果不知道怎么开始的话可以看我之前造过的两个简单轮子, 都托管在 travis-ci 上了
    https://github.com/flowmemo/can-i-reach-google 前端测试, 用的 casperjs.
    https://github.com/flowmemo/koa-httpany 这个有后端测试,有代码覆盖率统计.

    这两个都非常简单,估计你看一下就知道对测试有个概念了.
    FlowMEMO
        10
    FlowMEMO  
       2016-06-30 22:31:42 +08:00
    @FlowMEMO 说错了 jasmine 不是 headless browser ,剩下几个是才是
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1407 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:29 · PVG 01:29 · LAX 09:29 · JFK 12:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.