天天看點

Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理

Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理

spiedFirstFocusable是spyOn方法針對執行個體keyboardFocusService的findFirstFocusable方法進行監控後傳回的句柄。借助該句柄,我們可以使用toHaveBeenCalledTimes方法,得到其在單元測試過程中實際調用的次數。

Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理

以後我們可以直接在函數toHaveBeenCalledTimes裡設定斷點調試。

  1. 檢查傳入的actual是否是一個spied後的函數。
  2. 将檢查結果設定成預設值false.
  3. 檢查傳入的期望調用次數的值的資料類型是否是Number
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理

這個數組裡包含的監控到的方法調用資訊有:

  1. 方法調用的輸入參數
  2. 調用方法的執行個體對象
  3. 調用方法的傳回參數

    "get the number of invocations of this spy"的實作方法:calls.length

    Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理
    Angular單元測試架構裡API toHaveBeenCalledTimes的工作原理

繼續閱讀