欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對TypeScript庫進行單元測試的方法

 更新時間:2019年07月18日 09:52:41   作者:RDDcoding  
這篇文章主要介紹了對TypeScript庫進行單元測試的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
原文發(fā)布于2017年7月,為保證能正常運行,其中部分命令進行了調整。

當時TypeScript版本為2.x,但依舊具有借鑒意義。

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

步驟1:安裝用于單元測試的包

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

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

npm i mocha @types/mocha chai @types/chai ts-node typescript --save-dev

步驟2:編寫第一個單元測試

假設你有以下單元:

typescript-library/src/math.ts

export function add(x: number, y: number) {
 return x + y;
}

那對應的單元測試可能是這樣的:

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:運行單元測試

您可以使用以下命令運行測試:

./node_modules/mocha/bin/mocha --reporter spec --require ts-node/register src/**/*.test.ts

然后應該會在控制臺中看到一個輸出,如下所示:

您可以將這個長命令放入package.json中轉換成"scripts:{"test":"…"}"然后用npm test運行測試。也就是說此時的package.json應該是:

{
 "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"
 }
}

如果您想運行單獨的某個單元測試,可以用./node_modules/mocha/bin/mocha --reporter spec --grep "TestName" --require ts-node/register src/**/*.test.ts?!癟estName”可以是任何的describe值,在本例中就如./node_modules/mocha/bin/mocha --reporter spec --grep "My math library" --require ts-node/register test/**/*.test.ts。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • JavaScript實現實時更新系統(tǒng)時間的實例代碼

    JavaScript實現實時更新系統(tǒng)時間的實例代碼

    本文給大家分享javascript實現實時更新系統(tǒng)時間的實例代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-04-04
  • javascript模擬評分控件實現方法

    javascript模擬評分控件實現方法

    這篇文章主要介紹了javascript模擬評分控件實現方法,涉及javascript操作頁面元素與樣式的相關技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解JavaScript狀態(tài)容器Redux

    詳解JavaScript狀態(tài)容器Redux

    Redux官網上是這樣描述Redux,Redux is a predictable state container for JavaScript apps.(Redux是JavaScript狀態(tài)容器,提供可預測性的狀態(tài)管理)。目前Redux GitHub有5w多star,足以說明 Redux 受歡迎的程度
    2021-06-06
  • webpack proxy如何解決跨域問題

    webpack proxy如何解決跨域問題

    webpack proxy,即webpack提供的代理服務,基本行為就是接收客戶端發(fā)送的請求后轉發(fā)給其他服務器,本文給大家介紹了webpack proxy如何解決跨域問題,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • 使用iframe window的scroll方法控制iframe頁面滾動

    使用iframe window的scroll方法控制iframe頁面滾動

    在頁面中如何控制內嵌的iframe滾動呢?方法是使用iframe window的scroll方法,大家可以參考下面的示例
    2014-03-03
  • javascript生成隨機數的方法

    javascript生成隨機數的方法

    這篇文章主要介紹了javascript生成隨機數的方法,需要的朋友可以參考下
    2014-05-05
  • JavaScript實現圖片懶加載(Lazyload)

    JavaScript實現圖片懶加載(Lazyload)

    這篇文章主要介紹了JavaScript實現圖片懶加載(Lazyload)的相關資料,需要的朋友可以參考下
    2016-11-11
  • 對layui初始化列表的CheckBox屬性詳解

    對layui初始化列表的CheckBox屬性詳解

    今天小編就為大家分享一篇對layui初始化列表的CheckBox屬性詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 學習JSON.stringify的9大特性和轉換規(guī)則

    學習JSON.stringify的9大特性和轉換規(guī)則

    本文介紹JSON.stringify9大特性和轉換規(guī)則,JSON.stringify()方法將一個JavaScript對象或值轉換為?JSON?字符串,如果指定了一個replacer?函數,則可以選擇性地替換值,或者指定的replacer是數組,則可選擇性地僅包含數組指定的屬性,更多內容需要的小火煸可以參考下面溫行內容
    2022-02-02
  • js實現數字每三位加逗號的方法

    js實現數字每三位加逗號的方法

    這篇文章主要介紹了js實現數字每三位加逗號的方法,以實例形式講述了js實現數字每三位加逗號的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02

最新評論