最近研究了js的单元测试,分享一下心得。
说起单元测试以前还真是不太了解,这次索性了解一番,测试有很多包含单元测试,性能测试,安全测试和功能测试等几方面,本次只介绍一下单元测试。
前端进行单元测试主要是为了提高自己的代码质量,多组测试用例,验证自己的代码是否都能通过,这是在开发中很有必要的。需要倡导的是‘开发者应该吃自己的狗粮’,—
单元测试主要包含断言,测试框架,测试用例等几个方面,
断言:
断言是对代码结果的一种判断,如果这种判断和结果是一样的,那么这个断言就是真的,测试就通过了,如果为假的,程序就会终止执行,并出现错误信息。
断言库有很多expect,should,chai,其次就是node的assert断言,本次主要说assert断言
var assert=require('assert');
assert.equal(Math.max(1,100),100);
一但assert.equal()不满足期望,将会抛出AssertionError异常,整个程序将停止执行。
断言规范中,我们定义一下几种检测方法:
ok()判断结果是否为真,
equal()判断实际值与期望值是否相等,
notEqual():判断实际值与期望值是否不相等
deepEqual():判断实际值与期望值是否深度相等(对象和数组的元素是否相等)
notDeepEqual:判断实际值与期望值是否不深度相等
strictEqual:判断实际值与期望值是否严格相等(===)
notStrictEqual:判断实际值与期望值是否不严格相等(相当于!==)
throws:判断代码块是否抛出异常
市面上的大多断言库都是基于assert模块进行封装和扩展的,这包括著名的should.js断言库
安装:
npm install should --save-dev
测试框架
<