對(duì)TypeScript庫(kù)進(jìn)行單元測(cè)試的方法_第1頁(yè)
對(duì)TypeScript庫(kù)進(jìn)行單元測(cè)試的方法_第2頁(yè)
對(duì)TypeScript庫(kù)進(jìn)行單元測(cè)試的方法_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第對(duì)TypeScript庫(kù)進(jìn)行單元測(cè)試的方法原文發(fā)布于2017年7月,為保證能正常運(yùn)行,其中部分命令進(jìn)行了調(diào)整。

當(dāng)時(shí)TypeScript版本為2.x,但依舊具有借鑒意義。

單元測(cè)試能限制你庫(kù)中Bug的「生長(zhǎng)」。隨著編寫的庫(kù)越來越大,你不能總是手工測(cè)試每個(gè)特性。但你可以使用單元測(cè)試來測(cè)試每個(gè)特性,并且編寫起來并不難。下面展示如何在Typescript中設(shè)置單元測(cè)試!

步驟1:安裝用于單元測(cè)試的包

單元測(cè)試assert(推斷)代碼中一些屬性。例如你有一個(gè)方法add(x,y),其應(yīng)該正確地將x和y相加,通過單元測(cè)試你可以進(jìn)行如下測(cè)試assert(add(3,4)).equals(7)。

一些用于單元測(cè)試的庫(kù)提供了好用的assert方法來執(zhí)行測(cè)試。我們這里使用了Mocha和Chai,通過如下命令進(jìn)行安裝:

npmimocha@types/mochachai@types/chaits-nodetypescript--save-dev

步驟2:編寫第一個(gè)單元測(cè)試

假設(shè)你有以下單元:

typescript-library/src/math.ts

exportfunctionadd(x:number,y:number){

returnx+y;

}

那對(duì)應(yīng)的單元測(cè)試可能是這樣的:

typescript-library/src/math.test.ts

import{add}from'./math';

import*asmochafrom'mocha';

import*aschaifrom'chai';

constexpect=chai.expect;

describe('Mymathlibrary',()={

it('shouldbeabletoaddthingscorrectly',()={

expect(add(3,4)).to.equal(7);

});

步驟3:運(yùn)行單元測(cè)試

您可以使用以下命令運(yùn)行測(cè)試:

./node_modules/mocha/bin/mocha--reporterspec--requirets-node/registersrc/**/*.test.ts

然后應(yīng)該會(huì)在控制臺(tái)中看到一個(gè)輸出,如下所示:

您可以將這個(gè)長(zhǎng)命令放入package.json中轉(zhuǎn)換成"scripts:{"test":"…"}"然后用npmtest運(yùn)行測(cè)試。也就是說此時(shí)的package.json應(yīng)該是:

"devDependencies":{

"@types/chai":"^4.1.7",

"@types/mocha":"^5.2.7",

"chai":"^4.2.0",

"ts-node":"^8.3.0",

"mocha":"^6.1.4"

"scripts":{

"test":"./node_modules/mocha/bin/mocha--reporterspec--requirets-node/registersrc/**/*.test.ts"

}

如果您想運(yùn)行單獨(dú)的某個(gè)單元測(cè)試,可以用./node_modules/mocha/bin/mocha--reporterspec--grep"TestName"--requirets-node/registersrc/**/*.test.ts?!癟estName”可以是任何的describe值,在本例中就如./node_modules/mocha/bin/mocha--reporterspec--grep"Mymathlibrary"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論