测试框架vue2.0+webpack2.0+Karma+Mocha (一.基础概念)

Mocha介绍

Mocha(发音“摩卡”),是现在最流行的JavaScript测试框架之一,在浏览器和Node环境都可以使用;测试框架可以为JavaScript添加测试用例,从而保证代码质量。

一、语法

测试脚本例子add.js

// add.js
function add( x , y ){
  return x + y;
}
module.exports = add;

接下来,我们写测试脚本

// add.test.js
var add = require('./add.js');
var expect = require('chai').expect;

describe('加法函数的测试', function() {
  it('1 加 1 应该等于 2', function() {
    expect(add(1, 1)).to.be.equal(2);
  });
});

上面这段代码,可以独立执行,可以包含一个或者多个describe块,每个describe包含一个或者多个it

describe
参数 说明
第一个参数 测试套件名称
第二个参数 实际执行的函数
it(是测试最小单位)
参数 说明
第一个参数 测试用例的名称
第二个参数 实际执行的函数

二、断言库介绍

expect(add(1, 1)).to.be.equal(2);

所谓的断言库就是执行结果是否和预期结果是一致,不一致就会抛出错误,上面这句断言的意思是,调用add(1,1),结果应该等于2

断言库有很多种,这里引入的是断言库是chaimocha并不限制使用哪一种断言库,下面是一些例子。

// 相等或不相等
expect(4 + 5).to.be.equal(9);
expect(4 + 5).to.be.not.equal(10);
expect(foo).to.be.deep.equal({ bar: 'baz' });

// 布尔值为true
expect('everthing').to.be.ok;
expect(false).to.not.be.ok;

// typeof
expect('test').to.be.a('string');
expect({ foo: 'bar' }).to.be.an('object');
expect(foo).to.be.an.instanceof(Foo);

// include
expect([1,2,3]).to.include(2);
expect('foobar').to.contain('foo');
expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo');

// empty
expect([]).to.be.empty;
expect('').to.be.empty;
expect({}).to.be.empty;

// match
expect('foobar').to.match(/^foo/);

了解更多关于mocha请点击

三、Karma介绍

Karma是由Google团队开发的一套前端测试运行框架,它不同于测试框架(比如:mocha),它是运行在这些测试框架之上。主要完成以下工作

  1. Karma启动一个web服务器,用于生成包含js测试脚本的页面
  2. 运行浏览器加载页面,可以显示测试的结果
  3. 如果开启检测,当文件有修改时,继续执行测试用例并且返回测试结果
  4. 提供代码覆盖率

了解更多关于Karma请点击

你可能感兴趣的:(测试框架vue2.0+webpack2.0+Karma+Mocha (一.基础概念))