跳至內容

jest/no-done-callback 樣式

作用

此規則會檢查 hook 和測試的函式參數是否使用 done 引數,並建議您改為回傳 Promise。

為什麼這不好?

在 hook 和測試中呼叫非同步程式碼時,jest 需要知道非同步工作何時完成才能繼續目前的執行。最初,實現這一點最常見的模式是使用回呼。

javascript
test("the data is peanut butter", (done) => {
  function callback(data) {
    try {
      expect(data).toBe("peanut butter");
      done();
    } catch (error) {
      done(error);
    }
  }

  fetchData(callback);
});

然而,這可能會非常容易出錯,因為它需要仔細理解測試中斷言的工作方式,否則測試將無法按預期運行。

範例

javascript
beforeEach((done) => {
  // ...
});

test("myFunction()", (done) => {
  // ...
});

test("myFunction()", function (done) {
  // ...
});

參考資料

以 MIT 許可證發布。