国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

NodeJs測(cè)試框架Mocha的安裝與使用

2024-05-06 15:19:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Mocha是運(yùn)行在nodejs和瀏覽器下的JavaScript的單元測(cè)試框架,官方文檔在https://mochajs.org/,相當(dāng)?shù)娜菀咨鲜趾秃糜?,單元測(cè)試框架其實(shí)都差不多,基本都包含下面內(nèi)容:

用于寫測(cè)試用例的宏,屬性或者函數(shù)
斷定庫(kù), 用于測(cè)試是否可以通過(guò)
輔助庫(kù),如hook庫(kù)(測(cè)試前后調(diào)用某些函數(shù)或者方法),異常檢查(某些函數(shù)在某些參數(shù)的情況下拋出異常), 輸入組合(支持多排列的參數(shù)輸入組合)等。
支持IDE的集成
下面就按照官方文檔的順序來(lái)簡(jiǎn)明扼要的

安裝與初步的使用

在控制臺(tái)窗口中執(zhí)行下列命令:

$ npm install -g mocha$ mkdir test$ $EDITOR test/test.js

可以寫如下代碼:

var assert = require('assert');describe('Array', function() { describe('#indexOf()', function () {  it('should return -1 when the value is not present', function () {   assert.equal(-1, [1,2,3].indexOf(5));   assert.equal(-1, [1,2,3].indexOf(0));  }); });});

回到控制臺(tái):

$ mocha . ✔ 1 test complete (1ms)

這里mocha會(huì)查找當(dāng)前文件目錄下test文件夾下的內(nèi)容,自動(dòng)執(zhí)行。

斷定庫(kù)

這個(gè)是判定測(cè)試用例是否通過(guò),默認(rèn)下可以用nodejs的assert庫(kù),與此同時(shí),Mocha支持我們使用不同的斷定庫(kù),現(xiàn)在可以支持下面的斷定庫(kù),每個(gè)斷定庫(kù)的用法有一些差異,自己可以參考相應(yīng)的文檔。

1 should.js(https://github.com/shouldjs/should.js) BDD style shown throughout these docs (BDD模式,本文檔用的都是這個(gè)斷定庫(kù))
2 better-assert(https://github.com/tj/better-assert) c-style self-documenting assert()(C-模型下的斷定庫(kù))
3 expect.js (https://github.com/Automattic/expect.js)expect() style assertions (expect模式的斷定庫(kù))
4 unexpected(http://unexpected.js.org/) the extensible BDD assertion toolkit
5 chai(https://github.com/chaijs) expect(), assert() and should style assertions

同步代碼

同步代碼表示測(cè)試的是同步函數(shù),上面的Array相關(guān)的例子代碼就是。這個(gè)比較好理解。

異步代碼

只所以有異步代碼測(cè)試,原因是在nodejs上許多異步函數(shù),如下面的代碼中,只有done()函數(shù)執(zhí)行完畢后,該測(cè)試用例才算完成

describe('User', function() { describe('#save()', function() {  it('should save without error', function(done) {   var user = new User('Luna');   user.saveAsync(function(err) {    if (err) throw err;    done(); // 只有執(zhí)行完此函數(shù)后,該測(cè)試用例算是完成。   });  }); });});

詳解describe和it

上面的實(shí)例代碼比較簡(jiǎn)單,那么什么是describe和it呢? 大致上,我們可以看出describe應(yīng)該是聲明了一個(gè)TestSuit(測(cè)試集合) ,而且測(cè)試集合可以嵌套管理,而it聲明定義了一個(gè)具體的測(cè)試用例。 以bdd interface為例,具體的源代碼如下:

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 广东省| 远安县| 石泉县| 噶尔县| 喀喇沁旗| 武冈市| 德兴市| 昭觉县| 黄龙县| 定兴县| 遵化市| 谷城县| 海安县| 澳门| 满城县| 廊坊市| 青田县| 乌鲁木齐县| 高陵县| 菏泽市| 明溪县| 北海市| 合阳县| 东乌珠穆沁旗| 舒城县| 齐河县| 尼玛县| 富顺县| 微博| 和硕县| 邢台县| 寻甸| 鹿泉市| 滕州市| 铜陵市| 朝阳市| 乃东县| 麟游县| 洪江市| 隆回县| 溧水县|