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

本文介绍了测试驱动开发(TDD)与行为驱动开发(BDD)的基本概念及实践方法,探讨了这两种方法如何帮助提高代码质量并简化错误检查过程。文章还详细介绍了Mocha测试框架的安装与使用,包括如何利用assert库进行TDD测试,以及如何运用Expect.js实现BDD测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    测试驱动开发(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:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值