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

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

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

这两个都非常简单,估计你看一下就知道对测试有个概念了.
FlowMEMO
2016-06-30 22:31:42 +08:00
@FlowMEMO 说错了 jasmine 不是 headless browser ,剩下几个是才是

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX