在使用Java开发的时候发现Java中的自动化单元测试非常完善。
其实所谓的自动化单元测试原理很简单,比如我开发的一个JavaScript工具库提供了若干个接口,
我就写了一个测试的js文件依次用不同的参数来调用这些接口,并验证接口返回的值是否符合预期。
如果是纯函数的方式来编写代码,测试也是很简单,因为每个函数可以单独测试,其实这样的需求可能都不要用到一些自动化测试框架,自己写几个js文件就好了。
虽然说简单的测试脚本自己写几个js脚本就可以完成了,不过最好还是希望有一个界面友好,和IDE良好集成的框架来加速我们的开发效率,我发现mocha这个工具比较满足我的需求,按照官网的操作方式很快就配置好了。
安装:
npm install --save-dev mocha
编写测试用例:
在项目根目录创建test文件夹,这里面的js文件应该会被依次运行
我创建了一个index.js,内容如下
var assert = require('assert')
const PM = require("../index")
describe('export function', function() {
describe('match', function() {
it('match is export', function() {
assert.equal(typeof PM.match, "function");
});
});
});
主要是想判断项目的index是否导出了match这个函数
修改package.json
"scripts": {
"test": "mocha"
},
运行测试:
npm run test
输出如下
mocha
export function
match
✓ match is export
1 passing (7ms)
通过了测试,而且我惊奇的发现我用的PHPstorm居然已经支持了Mocha,可以在编辑器里面选择一个
测试用例来手动运行了,和idea里面运行Junit测试一样 如图:
还有一些JavaScript脚本必须在浏览器环境下运行,与DOM、BOM 交互非常复杂,已经不太可能单独把一个函数提取出来测试了,这就需要一些高级的自动化单元测试工具了,不过我目前还没有计划把UI相关的代码来做自动化测试。