摘要:
使用 done Jest 提供了一個名為 done 的方法,用于表示測試運行應(yīng)該等待異步調(diào)用完成。done 函數(shù)可以作為參數(shù)傳遞給任何 beforeAll、beforeEach 或 it 函數(shù),并且允許我們的異步測試在繼續(xù)之前等待 done 函數(shù)被調(diào)用。讓我們使用 done 重寫我們之前失敗的測試如
閱讀全文
摘要:
異步測試 (Asynchronous tests) 正如我們在探索JavaScript和TypeScript時所看到的,我們編寫的大部分代碼都是異步的。這意味著我們無法準(zhǔn)確控制回調(diào)函數(shù)何時被調(diào)用,或者Promise何時解析,因為我們正在等待一個超出我們控制范圍的事件發(fā)生。這經(jīng)常在單元測試中引起問題,
閱讀全文
摘要:
返回值的監(jiān)視器 (Spies returning values) 當(dāng)我們希望模擬函數(shù)的返回值時,我們可以輕松地從模擬實現(xiàn)中返回一個值。作為示例,請考慮以下類: 1 class MyMockedClass { 2 functionToBeMocked(): number { 3 return 5; 4
閱讀全文
摘要:
Jest 監(jiān)視器 (Jest spies) Jest還提供了一種能夠檢查特定類方法是否被調(diào)用的能力,使用的是所謂的spy。考慮以下類定義: 1 class MySpiedClass { 2 testFunction() { 3 console.log(`testFunction() called`)
閱讀全文
摘要:
Jest模擬 (Jest mocks) 在測試我們的代碼時,我們經(jīng)常遇到這樣的情況:我們希望確保某個特定函數(shù)被調(diào)用,或者它被使用正確的參數(shù)進行了調(diào)用。當(dāng)一個特定函數(shù)按順序調(diào)用其他函數(shù)以執(zhí)行一些業(yè)務(wù)邏輯時,這種情況最常見。例如,我們可能會調(diào)用一個初始化函數(shù),并且該初始化函數(shù)可能會調(diào)用多個REST服務(wù)來
閱讀全文
摘要:
數(shù)據(jù)驅(qū)動測試 (Data-driven tests) 很多時候,我們需要運行相同的測試多次,只是輸入值不同。作為這個的一個例子,請考慮以下測試: [1, 2, 3, 4, 5] .forEach((value: number) => { it(`${value} should be less tha
閱讀全文
摘要:
測試設(shè)置和拆卸 ( Test setup and teardown) 在運行特定的測試之前,我們可能希望先執(zhí)行一些代碼。這可能是為了初始化一個特定的變量,或者確保對象的依賴關(guān)系已經(jīng)設(shè)置好。同樣地,我們可能希望在特定的測試運行后執(zhí)行一些代碼,甚至在整個測試套件運行完畢后執(zhí)行。為了說明這一點,請考慮以下
閱讀全文