您的位置:首页 > Web前端 > Node.js

Node.js项目实战-构建可扩展的Web应用(第一版):3 Node.js基于Mocha的测试驱动开发和行为驱动开发

2018-01-10 21:05 951 查看
    测试驱动开发(TDD)是一种主要的敏捷开发技术。它最强大之处是可以提升代码的质量,改进错误的检查方式,以及增强程序员的信心,使其获得更有效率的开发手段。

    纵观历史,Web应用已经越来越难以自动测试,开发者们严重依赖手动测试。但其实,一些特定的项目,比如独立的服务和REST API可以且必须用TDD来测试。同时,富用户界面应用也可以用PhantomJS这种无界面浏览器来进行测试。

    行为驱动开发(BDD)的概念是基于TDD的。它鼓励产品负责人与开发者合作,这一点在语言上不同于TDD。

    测试框架Mocha:

3.1 安装与理解Mocha

$ npm install  mocha@1.16.2

$ ./node_modules/mocha/bin/mocha test_name

TDD主要的思想:定义一个单元测试、执行这个单元测试、验证这个测试是否通过;

BDD是TDD的一个专业版本,它指定了从业务需求的角度出发需要哪些单元测试。

虽然,使用assert模块来写测试也是可行的,但用Mocha测试框架来实现TDD和BDD会更好。如下:获取测试报告、支持异步模式和丰富的可配置项。

$ mocha app.js -R nyan    //测试报告

理解Mocha的hook机制:当特定的事件触发时hook才执行。测试函数中加上done参数

3.2 用assert(断言)进行测试驱动开发

用assert进行TDD:

     test.js

var assert = require('assert')
describe('String#split', function(){
it('should return an array', function() {    //使用it方法测试是否有数组
assert(Array.isArray('a,b,c'.split(',')));
})
})
     $ mocha test

断言库Chai:npm install chai@1.8.1

3.3 用Expect.js进行行为驱动开发

用Expect.js进行BDD:npm install expect.js@0.2.0

Expect.js的语法:

3.4 项目:为博客写第一个BDD测试

   不进行UI测试,但可以发送几个HTTP请求,然后解析从应用程序REST端返回的响应数据。

   $ mkdir tests

   tests/index.js

   将配置参数写入Makefile:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐