Practical Node.js第3章:测试
Posted Mr-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Practical Node.js第3章:测试相关的知识,希望对你有一定的参考价值。
TDD and BDD for Node.js with Mocha
TDD测试驱动开发。自动测试代码。
BDD: behavior-driven development行为驱动开发,基于TDD。一种自然化的测试语言。
例如,使用expect(response.status).to.equal(200)代替了TDD的assert.equal(response.status, 200)
Mocha 摩卡??
(点击连接看git)(方法:文档)
本章介绍:比较流行的javascript test framework for Node.js和browser: mocha
涉及以下方面:
- 安装理解Mocha
- TDD的assert。
- BDD的expect.js模块。
- Project: 为上个章节的Blog app写一个测试。
Installing and Understanding Mocha(17000?)
Mocha是成熟的强大的测试框架。全局安装
$ npm install –-global mocha
驱动测试开发基本步骤:
- 写测试
- 写让测试通过的代码
- 确认测试通过,并重复1,2步骤。
BDD是TDD的特色版本。它使用单元测试,逐步满足商业需求。
Node.js核心模块是assert。但是,使用明确的testing library更好。
本章使用Mocha测试框架,让许多事情变得更"free",因为Mocha可以:
- Reporting
- 异步支持
- 丰富的可配置性
- 通知Notifications
- Debugger 支持
- 常用的交互:before, after钩子
- 文件watcher支持。
使用Mocha有更多的功能和好处。这里有一个选项参数名单,使用$ mocha [options]命令。
全的list:mocha -h
例如:
mocha test-expect.js -R nyan
选择一个框架的类型,有很多选择。Mocha是作者推荐的一个,有17k?。除此之外还有以下选择:
- Jest (https://facebook.github.io/jest):(22k?) A framework for mostly React and browser testing, which is built on Jasmine and has a lot of things included
- Jasmine: (https://jasmine.github.io):(14k?) A BDD framework for Node and browser testing, which follows Mocha notation
- Vows (http://vowsjs.org): (16k?)A BDD framework for asynchronous testing
- Enzyme (16k??) : A language mostly for React apps, which has a jQuery-like syntax and is used with Mocha, Jasmine, or other test frameworks
- Karma :(10k?) A testing framework mostly for Angular apps(vue也推荐使用,将项目运行在各个主流浏览器进行测试!)
Vue官方推荐使用Karma, mocha, chai.
Mocha是一个测试框架,在vue-cli中配合chai断言库实现单元测试。
Mocha的常用命令和用法不算太多,看阮一峰老师的测试框架 Mocha 实例教程就可以大致了解了。
而Chai断言库可以看Chai.js断言库API中文文档,很简单,多查多用就能很快掌握。
Understanding Mocha Hooks
以上是关于Practical Node.js第3章:测试的主要内容,如果未能解决你的问题,请参考以下文章
Practical Node.js (2018版) 第5章:数据库 使用MongoDB和Mongskin。