美文网首页
单元测试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