最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
nodejs的單元測試框架mocha

nodejs的單元測試框架mocha

當(dāng)我們編寫比較復(fù)雜的項(xiàng)目時(shí),需要對項(xiàng)目的測試用例進(jìn)行長期跟蹤,對單元模塊進(jìn)行質(zhì)量控制,對開發(fā)成果進(jìn)行自我檢驗(yàn),那么需要一個好用的工具,自學(xué)了一下mocha,這個筆記幾乎是照搬官網(wǎng)的英文版進(jìn)行了自我的一番理解的初步呈現(xiàn),多以條目為主,還沒有時(shí)間進(jìn)一步實(shí)踐,通過強(qiáng)制寫筆記的方式,鞭策自己加深理解,學(xué)會分享,提高學(xué)習(xí)力,我在努力。

創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元汕城做網(wǎng)站,已為上家服務(wù),為汕城各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

1.安裝

 npm install --global mocha

2.作為項(xiàng)目開發(fā)依賴項(xiàng)安裝

npm install --save-dev mocha

3.版本注意事項(xiàng)

Mocha v3.0.0 需要npm v2.14.2+
v3.0.0之后,不再依賴字符串匹配來決定執(zhí)行哪些測試。
.only()可以多次使用來定義要運(yùn)行的測試子集。

4.編碼

可以支持before, after, beforeEach, afterEach

5.test目錄

mocha會運(yùn)行test目錄下所有測試,目錄名不能修改。
如果要包含子目錄用--recursive

6.生成package.json依賴mocha

使用npm init命令生成package.json

7.每個測試一段

it("name", function(){…})

8.測試原則

一次只測一種情況,測試代碼要非常簡單cd mocha

9.啟動命令

  • (1).node_modules/mocha/bin/mocha
  • (2)先package.json加script{"test":"mocha"},再npm test

10.配置debug命令

11.段落代碼說明

特定執(zhí)行

describe.only("#indexOf()", function(){});

跳過

descrip.skip("#indexOf()", function(){});

跳過多個測試

before(function(){
    if(/* check test environment */) {
        //setup code
    } else {
        this.skip();
    }
});

Diff視圖

err.actual err.expected 斷言成功失敗視圖

require導(dǎo)包

var testCase = require('mocha').describe;//可以用更直觀的變量名稱

重試測試

當(dāng)調(diào)用this.retries(x)時(shí),會重新調(diào)用beforeEach及afterEach方法

動態(tài)生成測試

定義慢的方法

this.slow(10000);

定義超時(shí)的方法

this.timeout(500);

代碼級別分為

套件級
    describe片段
測試級
    it片段
鉤子級
    beforeEach中

12.mocha的測試接口

BDD,TDD,Exports,QUnit,Require
BDD接口比較常用,之前的例子都是BDD。
TDD接口是類似JUnit的調(diào)用方式。
QUNIT扁平化的樣子類似于TDD,但也支持before,after,beforeEach,afterEach

13.測試工具

Wallaby.js
mocha摩卡側(cè)邊欄

14.測試報(bào)告

spec報(bào)告器:可以輸出嵌套的分層視圖
點(diǎn)陣報(bào)告器:是最小化的輸出,可以用一系列字符代表測試用例,失敗是紅色嘆號,待定是藍(lán)色逗號,慢速是×××顯示
NYAN報(bào)告器:有一只貓做進(jìn)度條,這個莫名其妙
TAP報(bào)告器:顯示每行單元測試明細(xì)
LANDING STRIP 報(bào)告器:飛機(jī)降落的跑道
LIST報(bào)告器:明細(xì)列表
PROGRESS進(jìn)展報(bào)告器:進(jìn)度條
MIN報(bào)告器:僅顯示摘要
DOC報(bào)告器:以html格式正文輸出

  • (1) 安裝報(bào)告器
    mocha.setup({
    ui:'tdd',
    ignoreLeaks: true,
    asyncOnly: true
    });
  • (2) 參數(shù)指定報(bào)告器
    mocha --reporter list --growl
  • (3) 變量定義報(bào)告器
    $REPORTER=nyan npm test

    多次調(diào)用回調(diào)會拋錯

15.require('chai')是一個斷言庫

var should = require('chai').should();
這個可以判斷should.exist(bitcore.lib);這些內(nèi)容是否存在

語言鏈

to
be
been

sinon可以創(chuàng)建假服務(wù)器

let server = sinon.fakeServer.create();

sinon提供spy和Stub配合斷言框架chai

模擬返回值:sinon.fake.returns(42);
模擬ajax:sinon.replace(jQuery, 'ajax', sinon.fake());
模擬xhr:sinon.useFakeXMLHttpRequest();
模擬服務(wù)器:sinon.fakeServer.create()

proxyquire覆蓋依賴性(依賴注入?)

模擬database

sinon.mock(database);

16.spies、stub與mock區(qū)別

stub擁有spies的所有功能,不是為了監(jiān)視調(diào)用情況,而是完全取代。
mock與stub功能一樣,都是用來替換指定函數(shù),mock用在替換掉多個方法,stub適用于替換一個函數(shù)。


當(dāng)前文章:nodejs的單元測試框架mocha
URL網(wǎng)址:http://fisionsoft.com.cn/article/jocpcd.html