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. 写让测试通过的代码
  3. 确认测试通过,并重复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

 

相关文章