Angular jasmine spyOn函数的实现原理
生活随笔
收集整理的這篇文章主要介紹了
Angular jasmine spyOn函数的实现原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例子:
語義:希望service.findFirstFocusable方法被監控,同時其調用之后,返回el變量。
- 輸入參數1:MockkeyboardFocusService
- 輸入參數2:字符串findFirstFocusable
這兩個參數去調用spyRegistry.spyOn方法。
首先要判斷MockkeyboardFocusService這個對象里確實有findFirstFocusable方法:
如果這個對象已經有and和calls屬性,說明已經被spied了:
其中and指向spy strategy,calls指向調用監控器 tracker.
把原始方法的備份存儲到originalMethod里:
調用SpyFactory創建spy:
customerSpyStrategy是空的:
基于原始函數創建一個wrapper:
函數調用的監控器tracker:
給wrapper即spied之后的函數添加and和calls屬性:
被spy之前:
被spy之后:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的Angular jasmine spyOn函数的实现原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP从业者群里讨论SAP技术的更新换代
- 下一篇: 银行卡挂失补办要钱吗 挂失补办银行卡要钱