Node.js笔记六:单元测试

转载自:http://www.jianshu.com/p/0628ce43b6e0


源码github地址在此,记得点星:
https://github.com/brandonxiang/example-mocha

单元测试是好代码必经的一步。在python中我使用过内置库unittest,相对来说,比较简单。单元测试会涉及到两个概念,BDD和TDD。

  • BDD 行为驱动开发(Behavior Driven Development)根据用户的行为需求去指导开发流程
  • TDD 测试驱动开发(Test-Driven Development)先编写单元测试用例代码,测试代码确定需要编写什么产品代码

Javascript的测试框架非常多,参考在Node.js上用什么测试框架好,在Node.js中,mocha应该是测试框架中的首选。在这里,主要介绍mocha,should.js和chai.js。

mocha

mocha本身只是一个单元测试框架,可以兼容第三方断言库。

使用

参考brandonxiang/interpolator中的测试用例。

describe用于描述你需要单元测试的对象,内嵌几层,把整个过程详细描述。

it用于描述你需要单元测试的行为,闭包的函数是测试的内容,测试内容依靠断言库。

should.js

这是一个非常像自然语言语句的断言库。

如果你遇到的测试情况是数字5应该是准确的5,且是一个数字。

(5).should.be.exactly(5).and.be.a.Number();

同时,你想要检验它的内部属性。

var user = {
    name: 'tj'
  , pets: ['tobi', 'loki', 'jane', 'bandit']
};

user.should.have.property('name', 'tj');
user.should.have.property('pets').with.lengthOf(4);

chai.js

这是一个非常常用的断言库。

var chai = require('chai');  
var assert = chai.assert;    // 用 Assert style
var expect = chai.expect;    // 用 Expect style
var should = chai.should();  // 用 Should style
判断它等于某个值
expect(foo).to.equal('bar');
判断它是否为true
expect(foo).to.be.true;
判断它属性某个类型
expect(foo).to.be.a('string');
判断它的长度
expect(foo).to.have.lengthOf(3);
判断它属性的长度
expect(beverages).to.have.property('tea').with.lengthOf(3);
should和expect

shouldexpect之间的区别在于,它考虑到ie的错误点,保证浏览器的兼容性。

还有非常多的相关项目,它们可以辅助你完成断言测试。

用例

如今vue-cli构建项目可以直接送你“一整套”单元测试和覆盖率的工具(使用的是karmamochachai)。

坑:错误vuex requires a Promise polyfill in this browser

使用vuex的项目在测试时会出现一个问题,参考Vue unit test error: vuex requires a Promise polyfill in this browser,需要安装babel-polyfill

npm install --save-dev babel-polyfill

在karma的配置文件karma.conf.js中添加:

files: [
  '../node_modules/babel-polyfill/dist/polyfill.js',
  'index.js'
],

转载,请表明出处。总目录前端经验收集器
转载,请表明出处。总目录后端记事本

学习前端的过程中,我整理了很多资料,也希望能共享出来帮助到更多刚接触或者接触前端不久的同学。不过也为了把控微信群的质量,入群的一定要是前端的小伙伴才可以。入群我就会把资料发给每个人,每天也会挑选前沿的前端高质量文章发到群里给大家学习。想加入的同学可以加 笑笑微信:iamaixiaoxiao,拉你入群。再次强调,保证群高质量,群非前端不加,请谅解哦。扫描微信二维码也可以。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值