jest/prefer-spy-on 樣式
此規則的作用
當透過覆寫屬性來模擬函式時,您必須在清除時手動還原原始實作。當使用 jest.spyOn()
時,Jest 會追蹤變更,並且可以使用 jest.restoreAllMocks()
、mockFn.mockRestore()
或在 Jest 設定中將 restoreMocks
設定為 true
來還原。
注意:jest.spyOn()
建立的模擬仍然與原始函式行為相同。原始函式可以使用 mockFn.mockImplementation()
或其他其他模擬函式覆寫。
範例
javascript
// invalid
Date.now = jest.fn();
Date.now = jest.fn(() => 10);
// valid
jest.spyOn(Date, "now");
jest.spyOn(Date, "now").mockImplementation(() => 10);