今天看了蚊子爸爸的自制前端框架的文章,可以说是受益匪浅了。通过这篇文章了解到了jasmine这个BDD(行为驱动开发,Behaviour Driven Development)的框架。
通过官方文档的学习之后,所以就简单介绍一下jasmine的安装和基本的使用。
Jasmine
的安装
1. 安装
本人是使用npm
进行安装的,代码如下:
// npm 安装模块
npm install --save-dev jasmine
// npm 全局安装
npm install -g jasmine
2.项目初始化
在该目录下的终端输入以下命令完成init:
jasmine init
此时项目目录里就多了一个spec
文件夹,spec/support/jasmine.json
就是jasmine
的一个配置文件,默认如下:
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
],
"stopSpecOnExpectationFailure": false,
"random": false
}
我们稍后会对选项进行介绍。
3. 终端下运行测试
配置好jasmine.json
文件后,就可以在spec
目录下运行你的测试了。举个栗子:
jasmine spec/appSpec.js
4.通过require
引入库
①引入库
你也可以将Jasmine
作为库引入你的项目中。
var Jasmine = require('jasmine');
var jasmine = new Jasmine();
②进行配置
通过引入文件或者使用Object都可以载入配置。
// 通过引入json文件进行配置
jasmine.loadConfigFile('spec/support/jasmine.json');
// 通过一个选项Object进行配置
jasmine.loadConfig({
spec_dir: 'spec',
spec_files: [
'appSpec.js',
'requests/**/*[sS]pec.js',
'utils/**/*[sS]pec.js'
],
helpers: [
'helpers/**/*.js'
]
});
③配置测试完成后的回调函数
通过onComplete
方法进行设置,这个方法接受一个回调函数作为其参数,而回调函数的参数则为是否通过测试的布尔值
。举个🌰:
jasmine.onComplete(function(passed) {
// 通过测试
if(passed) {
console.log('All specs have passed');
} // 未通过测试
else {
console.log('At least one spec has failed');
}
});
④记录器
可以通过configureDefaultReporter
来配置控制台的测试报告。默认配置如下:
jasmine.configureDefaultReporter({
timer: new this.jasmine.Timer(),
print: function() {
process.stdout.write(util.format.apply(this, arguments));
},
showColors: true,
jasmineCorePath: this.jasmineCorePath
});
你也可以通过addReporter
添加一个自定义记录器。通过此方法加入后,默认的记录器将不会被添加。通过addReporter
,你可以添加多个记录器。
var CustomReporter = require('./myCustomReporter');
var customReporter = new CustomReporter();
jasmine.addReporter(customReporter);
⑤运行测试
通过execute
方法运行specs。
execute
接收两个参数:
- 包含需要测试的spec文件路径字符串的数组。
- 通过spec名进行过滤的字符串。
jasmine.execute();
jasmine.execute(['fooSpec.js'], 'a spec name');
⑥通过库引入的简单🌰
var Jasmine = require('jasmine');
var jasmine = new Jasmine();
jasmine.loadConfigFile('spec/support/jasmine.json');
jasmine.configureDefaultReporter({
showColors: false
});
jasmine.execute();
简单的安装和使用就到这,有什么不对的地方,欢迎指正和交流。
参考文献:
[1] Jasmine官方文档:https://jasmine.github.io/edge/node.html
网友评论