Mocha介紹
Mocha(發(fā)音“摩卡”)教沾,是現(xiàn)在最流行的JavaScript測(cè)試框架之一挤巡,在瀏覽器和Node環(huán)境都可以使用;測(cè)試框架可以為JavaScript添加測(cè)試用例阿纤,從而保證代碼質(zhì)量揖闸。
一揍堕、語法
測(cè)試腳本例子add.js
// add.js
function add( x , y ){
return x + y;
}
module.exports = add;
接下來,我們寫測(cè)試腳本
// add.test.js
var add = require('./add.js');
var expect = require('chai').expect;
describe('加法函數(shù)的測(cè)試', function() {
it('1 加 1 應(yīng)該等于 2', function() {
expect(add(1, 1)).to.be.equal(2);
});
});
上面這段代碼汤纸,可以獨(dú)立執(zhí)行衩茸,可以包含一個(gè)或者多個(gè)describe塊,每個(gè)describe包含一個(gè)或者多個(gè)it塊
describe
參數(shù) | 說明 |
---|---|
第一個(gè)參數(shù) | 測(cè)試套件名稱 |
第二個(gè)參數(shù) | 實(shí)際執(zhí)行的函數(shù) |
it(是測(cè)試最小單位)
參數(shù) | 說明 |
---|---|
第一個(gè)參數(shù) | 測(cè)試用例的名稱 |
第二個(gè)參數(shù) | 實(shí)際執(zhí)行的函數(shù) |
二蹲嚣、斷言庫(kù)介紹
expect(add(1, 1)).to.be.equal(2);
所謂的斷言庫(kù)就是執(zhí)行結(jié)果是否和預(yù)期結(jié)果是一致递瑰,不一致就會(huì)拋出錯(cuò)誤祟牲,上面這句斷言的意思是隙畜,調(diào)用add(1,1),結(jié)果應(yīng)該等于2
斷言庫(kù)有很多種抖部,這里引入的是斷言庫(kù)是chai,mocha并不限制使用哪一種斷言庫(kù)议惰,下面是一些例子慎颗。
// 相等或不相等
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/);
了解更多關(guān)于mocha請(qǐng)點(diǎn)擊
三、Karma介紹
Karma是由Google團(tuán)隊(duì)開發(fā)的一套前端測(cè)試運(yùn)行框架言询,它不同于測(cè)試框架(比如:mocha),它是運(yùn)行在這些測(cè)試框架之上俯萎。主要完成以下工作
- Karma啟動(dòng)一個(gè)web服務(wù)器,用于生成包含js測(cè)試腳本的頁面
- 運(yùn)行瀏覽器加載頁面运杭,可以顯示測(cè)試的結(jié)果
- 如果開啟檢測(cè)夫啊,當(dāng)文件有修改時(shí),繼續(xù)執(zhí)行測(cè)試用例并且返回測(cè)試結(jié)果
- 提供代碼覆蓋率
了解更多關(guān)于Karma請(qǐng)點(diǎn)擊