<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Typescript 測試驅動開發 TDD (12)

      Jest模擬 (Jest mocks)


      在測試我們的代碼時,我們經常遇到這樣的情況:我們希望確保某個特定函數被調用,或者它被使用正確的參數進行了調用。當一個特定函數按順序調用其他函數以執行一些業務邏輯時,這種情況最常見。例如,我們可能會調用一個初始化函數,并且該初始化函數可能會調用多個REST服務來加載數據。在為我們的初始化函數編寫測試時,我們希望確保所有對REST服務的調用都已完成。為了確保函數被調用,我們使用Jest模擬技術。

      作為我們可以使用Jest模擬的一個示例,請考慮以下類:

      1 class MyCallbackClass {
      2      executeCallback(
      3              value: string,
      4              callbackfn:  (value: string) => null
      5      ) {
      6            console.log(`executeCallback invoking callbackFn`);
      7            callbackFn(value);
      8      } 
      9 }

      這里,我們有一個名為MyCallbackClass的類,它有一個名為executeCallback的方法。executeCallback函數接受兩個參數,類型分別為字符串的value和callbackFn。executeCallback方法將一個值記錄到控制臺,并調用傳入的回調函數以及傳入的字符串值。

      讓我們來看一下如何使用Jest模擬函數作為callbackFn參數,如下所示:

      1 it("should mock callback function", () => {
      2     let mock = jest.fn();
      3     
      4     let myCallbackClass = new MyCallbackClass();
      5     myCallbackClass.executeCallback('test', mock);
      6 
      7     expect(mock).toHaveBeenCalled();
      8 });

      在這里,我們通過創建一個名為mock的變量來開始我們的測試,該變量被賦值為調用jest.fn函數的結果。jest.fn函數實際上創建了一個模擬函數,可以作為回調函數的快速替代品使用。

      我們的測試然后創建了一個名為myCallbackClass的MyCallbackClass實例,
      然后調用executeCallback方法,將字符串值'test'和我們的模擬函數作為參數傳入。
      然后我們在這個模擬函數實例上使用toHaveBeenCalled匹配器,
      它會測試executeCallback方法是否真正調用了我們作為參數傳入的回調函數。

      我們還可以檢查傳入的參數作為參數調用的函數是否使用了正確的參數,如下所示:

       

      1 if("should call testFunction with argument using mock", () => {
      2     let mock = jest.fn();
      3     
      4     let myCallbackClass = new MyCallbackClass();
      5     myCallbackClass.executeCallback("argument_1", mock);
      6     expect(mock).toHaveBeenCalledWith("argument_1");
      7 });

      在這里,我們使用的是 toHaveBeenCalledWith 匹配器,而不是之前測試中使用的 toHaveBeenCalled 匹配器。這樣可以讓我們檢查傳入作為參數的函數是否以正確的參數被調用。

      Jest模擬是一種快速方便的創建回調函數的方式。

       

      posted @ 2023-09-22 12:50  TonysDad  閱讀(21)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品国产亚洲av麻豆特色| 国产精品VA尤物在线观看| 色欧美片视频在线观看| 欧美成本人视频免费播放| 无人区码一码二码三码区| 97精品国产91久久久久久久| 亚洲青青草视频在线播放| 久久人人爽人人爽人人片av| 国产精品黄色片在线观看| 辛集市| 亚洲中文字幕在线二页| 亚洲爆乳WWW无码专区| 欧美成人一区二区三区不卡| 成人自拍小视频在线观看| 蜜桃av一区二区高潮久久精品| 无码高潮爽到爆的喷水视频app| 亚洲成年av天堂动漫网站| 国产欧美久久一区二区| 久久精品亚洲中文字幕无码网站 | 日本人一区二区在线观看| 亚洲精品日韩在线观看| 亚洲国产亚洲综合在线尤物| 免费人妻无码不卡中文字幕18禁| 久久亚洲av成人一二三区| 亚洲国产中文字幕精品| 国产精品中文字幕二区| 午夜一区二区三区视频| 国产99在线 | 亚洲| 国产午夜精品一区二区三区不卡| 成人国产精品中文字幕| 久久国产乱子精品免费女| 日本黄页网站免费大全| 日韩成人高精品一区二区| 东京一本一道一二三区| 国语精品自产拍在线观看网站| 黑人巨大亚洲一区二区久| 性夜黄a爽影免费看| 久久99精品久久久久久青青| 亚洲国产成人久久一区久久| 欧美日本在线| 久久夜色国产噜噜亚洲av|