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

首頁 > 語言 > JavaScript > 正文

利用Jasmine對Angular進行單元測試的方法詳解

2024-05-06 15:16:02
字體:
來源:轉載
供稿:網友

前言

本文主要介紹的是關于利用Jasmine對Angular單元測試的相關內容,以下是我假定那些極少或壓根沒寫單元測試的人準備的,因此,會白話解釋諸多概念性問題,同時會結合 Jasmine 與之對應的方法進行講解。

一、概念

Test Suite

測試套件,哪怕一個簡單的類,也會有若干的測試用例,因此將這些測試用例集合在一個分類下就叫Test Suite。

而在 Jasmine 就是使用 describe 全局函數來表示,它的第一個字符串參數用來表示Suite的名稱或標題,第二個方法參數就是實現Suite代碼了。

describe('test suite name', () => {});

Specs

一個Specs相當于一個測試用例,也就是我們實現測試具體代碼體。

Jasmine 就是使用 it 全局函數來表示,和 describe 類似,字符串和方法兩個參數。

而每個 Spec 內包括多個 expectation 來測試需要測試的代碼,只要任何一個 expectation 結果為 false 就表示該測試用例為失敗狀態。

describe('demo test', () => { const VALUE = true; it('should be true', () => {  expect(VALUE).toBe(VALUE); })});

Expectations

斷言,使用 expect 全局函數來表示,只接收一個代表要測試的實際值,并且需要與 Matcher 代表期望值。

二、常用方法

Matchers

斷言匹配操作,在實際值與期望值之間進行比較,并將結果通知Jasmine,最終Jasmine會判斷此 Spec 成功還是失敗。

Jasmine 提供非常豐富的API,一些常用的Matchers:

toBe() 等同 === toNotBe() 等同 !== toBeDefined() 等同 !== undefined toBeUndefined() 等同 === undefined toBeNull() 等同 === null toBeTruthy() 等同 !!obj toBeFalsy() 等同 !obj toBeLessThan() 等同 < toBeGreaterThan() 等同 > toEqual() 相當于 == toNotEqual() 相當于 != toContain() 相當于 indexOf toBeCloseTo() 數值比較時定義精度,先四舍五入后再比較。 toHaveBeenCalled() 檢查function是否被調用過 toHaveBeenCalledWith() 檢查傳入參數是否被作為參數調用過 toMatch() 等同 new RegExp().test() toNotMatch() 等同 !new RegExp().test() toThrow() 檢查function是否會拋出一個錯誤

而這些API之前用 not 來表示負值的判斷。

expect(true).not.toBe(false);

這些Matchers幾乎可以滿足我們日常需求,當然你也可以定制自己的Matcher來實現特殊需求。

Setup 與 Teardown

一份干將的測試代碼很重要,因此我們可以將這些重復的 setup 與 teardown 代碼,放在與之相對應的 beforeEach 與 afterEach 全局函數里面。

beforeEach 表示每個 Spec 執行之前,反之。

describe('demo test', () => { let val: number = 0; beforeEach(() => {  val = 1; }); it('should be true', () => {  expect(val).toBe(1); }); it('should be false', () => {  expect(val).not.toBe(0); });});            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 肥西县| 西安市| 保德县| 景宁| 无锡市| 庆元县| 弥勒县| 榆中县| 华坪县| 和林格尔县| 武鸣县| 栾城县| 沐川县| 宜川县| 灵川县| 南宫市| 民勤县| 通许县| 高州市| 昔阳县| 尖扎县| 渑池县| 大田县| 云阳县| 丽江市| 南木林县| 营山县| 东山县| 友谊县| 邯郸县| 饶平县| 军事| 藁城市| 五原县| 太白县| 都昌县| 井研县| 威信县| 绿春县| 韶山市| 蓬莱市|