跳到內容

jest/prefer-mock-promise-shorthand 風格

🛠️ 此規則的部分違規行為可進行自動修復。

作用

當使用模擬回傳 Promise 的函式時,Jest 提供了一些 API 語法糖函式,以減少您必須編寫的樣板程式碼。在可能的情況下,應優先使用這些方法。

範例

javascript
// invalid
jest.fn().mockImplementation(() => Promise.resolve(123));
jest.spyOn(fs.promises, "readFile").mockReturnValue(Promise.reject(new Error("oh noes!")));

myFunction
  .mockReturnValueOnce(Promise.resolve(42))
  .mockImplementationOnce(() => Promise.resolve(42))
  .mockReturnValue(Promise.reject(new Error("too many calls!")));

// 有效

javascript
jest.fn().mockResolvedValue(123);
jest.spyOn(fs.promises, "readFile").mockRejectedValue(new Error("oh noes!"));

myFunction.mockResolvedValueOnce(42).mockResolvedValueOnce(42).mockRejectedValue(new Error("too many calls!"));

參考資料

在 MIT 許可下發布。