摘要:?jiǎn)卧獪y(cè)試能限制你庫(kù)中的生長(zhǎng)。但你可以使用單元測(cè)試來測(cè)試每個(gè)特性,并且編寫起來并不難。一些用于單元測(cè)試的庫(kù)提供了好用的方法來執(zhí)行測(cè)試。也就是說此時(shí)的應(yīng)該是如果您想運(yùn)行多帶帶的某個(gè)單元測(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)行安裝:
npm i mocha @types/mocha chai @types/chai ts-node typescript --save-dev
步驟2:編寫第一個(gè)單元測(cè)試假設(shè)你有以下單元:
typescript-library/src/math.ts
export function add(x: number, y: number) { return x + y; }
那對(duì)應(yīng)的單元測(cè)試可能是這樣的:
typescript-library/src/math.test.ts
import { add } from "./math"; import * as mocha from "mocha"; import * as chai from "chai"; const expect = chai.expect; describe("My math library", () => { it("should be able to add things correctly" , () => { expect(add(3,4)).to.equal(7); }); });步驟3:運(yùn)行單元測(cè)試
您可以使用以下命令運(yùn)行測(cè)試:
./node_modules/mocha/bin/mocha --reporter spec --require ts-node/register src/**/*.test.ts
然后應(yīng)該會(huì)在控制臺(tái)中看到一個(gè)輸出,如下所示:
您可以將這個(gè)長(zhǎng)命令放入package.json中轉(zhuǎn)換成"scripts:{"test":"…"}"然后用npm test運(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 --reporter spec --require ts-node/register src/**/*.test.ts" } }
如果您想運(yùn)行多帶帶的某個(gè)單元測(cè)試,可以用./node_modules/mocha/bin/mocha --reporter spec --grep "TestName" --require ts-node/register src/**/*.test.ts。“TestName”可以是任何的describe值,在本例中就如./node_modules/mocha/bin/mocha --reporter spec --grep "My math library" --require ts-node/register test/**/*.test.ts。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105736.html
摘要:?jiǎn)卧獪y(cè)試一個(gè)合格的庫(kù)應(yīng)該包含完整的單元測(cè)試。是的支持版,和是一樣的,它能夠直接運(yùn)行為后綴的單元測(cè)試文件。在目錄下加入然后執(zhí)行即可看到單元測(cè)試結(jié)果。 這篇文章主要是講述如何使用 TypeScript 編寫一個(gè)完善,包含測(cè)試、文檔、持續(xù)集成的庫(kù),涵蓋了編寫整個(gè)庫(kù)所需要的技術(shù)和工具,主要涵蓋: 項(xiàng)目目錄骨架 TypeScript 配置 使用 jest 單元測(cè)試 使用 vuepress 編寫...
摘要:是一個(gè)測(cè)試框架,在中配合斷言庫(kù)實(shí)現(xiàn)單元測(cè)試。腳本命名方式為組件名。單元測(cè)試默認(rèn)測(cè)試目錄下除了之外的所有文件,可在文件中修改。回收,一般在每個(gè)測(cè)試腳本測(cè)試完成后執(zhí)行回收。等元素事件名稱配置項(xiàng)觸發(fā)和事件,既觸發(fā)點(diǎn)擊事件。 ??百度網(wǎng)盤??提取碼:u6C4在使用vue-cli創(chuàng)建項(xiàng)目的時(shí)候,會(huì)提示要不要安裝單元測(cè)試和e2e測(cè)試。...
摘要:背景需要包寫起來爽,然而如果遇到?jīng)]有現(xiàn)成的化的工具函數(shù),就需要自己想辦法弄出一份類型聲明文件了。最為重要的是,這種遷移方面我們可以隨意自定義化中所需要的工具函數(shù),遷移粒度都可以由自己控制。 1、背景 1.1、需要 TS 包 TypeScript 寫起來爽,然而如果遇到?jīng)]有現(xiàn)成的 TS 化的工具函數(shù),就需要自己想辦法弄出一份類型聲明文件了。 前兩天要寫的小工具庫(kù)(Typescript 語...
摘要:一個(gè)帶提示的最后對(duì)于開發(fā)同學(xué)來說,就算不使用,也強(qiáng)烈建議使用提供注解,它會(huì)通過一些類型推導(dǎo)來檢查你的代碼的正確性,可以減少很多開發(fā)過程中的。相對(duì)于對(duì)象,它保證了輸入的類型你定義的對(duì)象可能某一天不再只有類型的,不再需要額外的類型判斷。 作者:陳達(dá)孚 香港中文大學(xué)研究生,《移動(dòng)Web前端高效開發(fā)實(shí)戰(zhàn)》作者之一,《前端開發(fā)者指南2017》譯者之一,在中國(guó)前端開發(fā)者大會(huì),中生代技術(shù)大會(huì)等技術(shù)...
摘要:前端每周清單第期現(xiàn)狀分析與優(yōu)化策略單元測(cè)試爬蟲作者王下邀月熊編輯徐川前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。 showImg(https://segmentfault.com/img/remote/1460000011008022); 前端每周清單第 29 期:Web 現(xiàn)狀分析與優(yōu)化策略...
閱讀 1926·2021-11-24 09:39
閱讀 3515·2021-09-28 09:36
閱讀 3282·2021-09-06 15:10
閱讀 3433·2019-08-30 15:44
閱讀 1154·2019-08-30 15:43
閱讀 1797·2019-08-30 14:20
閱讀 2712·2019-08-30 12:51
閱讀 2031·2019-08-30 11:04