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

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

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

      Typescript 測試驅動開發 TDD (15)

      異步測試 (Asynchronous tests)


      正如我們在探索JavaScript和TypeScript時所看到的,我們編寫的大部分代碼都是異步的。這意味著我們無法準確控制回調函數何時被調用,或者Promise何時解析,因為我們正在等待一個超出我們控制范圍的事件發生。這經常在單元測試中引起問題,在這種情況下,我們需要等待異步事件完成后才能繼續進行測試。以下是一個示例類:

      1 class MockAsync {
      2       executeSlowFunction(
      3               complete: (value: string) => void
      4       ) {
      5             setTimeout(() => {
      6                  complete(`competed`);
      7             },1000);
      8       }
      9 }

      在這里,我們有一個名為MockAsync的類,它有一個名為executeSlowFunction的方法。該方法接受一個名為complete的回調函數作為唯一參數,并在1秒后調用它。我們可以按照以下方式編寫對這個類的測試:

       

       1 describe("failing async tests", () => {
       2      it("should wait for callback to complete", () => {
       3           let mockAsync = new MockAsync();
       4           console.log(`1. calling executeSlowFunction`);
       5           let returnValue !: string;
       6           mockAsync.executeSlowFunction((value: string) => {
       7                console.log(`2. complete called`);
       8                returnedValue = value;
       9           });
      10 
      11      })
      12 });

      在這里,我們有一個名為"failing async tests"的測試套件,以及一個名為"should wait for callback to complete"的測試。該測試首先創建了一個名為mockAsync的MockAsync類實例。然后它向控制臺輸出一條消息,并創建了一個變量named returnedValue來保存調用executeSlowFunction方法時返回的值。接下來,它調用executeSlowValueFunction函數并定義了一個回調函數。這個回調函數向控制臺輸出一條消息,并將回調返回的值存儲在returnedValue變量中。然后,該測試向控制臺輸出第三條消息,并檢查returnedValue變量是否包含字符串值"completed"。

      運行此測試,然而,會得到以下的失敗輸出:

      在這里,我們可以看到打印到控制臺的消息是"1. calling executeSlowFunction"和"3. checking return value"。我們完全沒有收到消息"2. executeSlowFunctionReturned"。我們的測試也失敗了,因為返回值變量expectedValue應該是 "completed",但實際上是undefined的。

      導致這個測試失敗的原因是測試本身沒有等待1秒鐘,以便executeSlowFunction函數調用完成回調。我們真正需要的是一種信號方式,告訴我們的測試只有在異步調用完成后才執行測試期望值。

      posted @ 2023-09-22 15:37  TonysDad  閱讀(24)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 四虎永久免费高清视频| 欧美日本精品一本二本三区| 人人澡超碰碰97碰碰碰| 九九热在线免费视频观看| 亚洲无人区码二码三码区| 91午夜福利一区二区三区| 国产熟睡乱子伦午夜视频| 池州市| 亚洲精品不卡av在线播放| 久久99国产精品尤物| 亚洲无码在线免费观看| 中文字幕精品人妻丝袜| 无码中文字幕热热久久| 精品久久久久无码| 谢通门县| 日韩精品一区二区三区vr| 久久天天躁夜夜躁狠狠85| 午夜精品久久久久久| 色欲国产精品一区成人精品| 欧美成人精品三级网站| 同性男男黄gay片免费| 99久久免费精品色老| 九九热在线免费视频播放| 99久久无码私人网站| 欧美乱大交aaaa片if| 屏山县| 欧美日产国产精品| 色道久久综合亚洲精品蜜桃| 青青草原网站在线观看| 亚洲高潮喷水无码AV电影| 成人午夜污一区二区三区| 午夜免费无码福利视频麻豆| 午夜精品福利亚洲国产| 116美女极品a级毛片| 欧美大香线蕉线伊人久久| 亚洲中文字幕一二区日韩| 精品一区二区三区日韩版| 亚洲色大成网站WWW尤物| 久久精品99国产精品日本| 国产成人无码久久久精品一| 一区二区三区无码免费看|