美文网首页
单元测试jasmine①[17.5.22]

单元测试jasmine①[17.5.22]

作者: 与我常在Jerry | 来源:发表于2017-05-22 22:26 被阅读18次

今天看了蚊子爸爸自制前端框架的文章,可以说是受益匪浅了。通过这篇文章了解到了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接收两个参数:

  1. 包含需要测试的spec文件路径字符串的数组。
  2. 通过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

相关文章

网友评论

      本文标题:单元测试jasmine①[17.5.22]

      本文链接:https://www.haomeiwen.com/subject/xbubxxtx.html