Jest 测试框架 expect 和 匹配器 matcher 的设计原理解析
副標(biāo)題:SAP Spartacus SSR 優(yōu)化的單元測試分析之二 - 調(diào)用參數(shù)檢測
源代碼:
注意觀察 jest.Expect 的返回值:類型為 jest.JestMatchersShape
單步調(diào)試 expect 的調(diào)用過程:
從注釋看,該函數(shù)為 spec 創(chuàng)建一個 expectation, 傳入的 actual 為 spy 之后的版本。
構(gòu)造一個 expectation,需要以上的參數(shù)。
緊接著調(diào)用 toHaveBeenCalledWith:
支持的所有方法,在 Chrome 開發(fā)者工具里能夠看到:
toHaveBeenCalledWith
執(zhí)行到這里來了:
所有可用的匹配器 matchers,都定義在文件 jasmine.js 里:
因此,toHaveBeenCalledWith 也算匹配器 matchers 之一。
構(gòu)造一個匹配器實例:
調(diào)用匹配器工廠,構(gòu)造一個匹配器實例:
其實例的運行代碼如下圖所示:
比較實際被調(diào)用的參數(shù),是否和期望被調(diào)用的參數(shù)完全一致。
進(jìn)入數(shù)組的比較分支:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的Jest 测试框架 expect 和 匹配器 matcher 的设计原理解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jest 测试框架 beforeEach
- 下一篇: HTTP 头部字段 Cache Cont