Skip to content

Bun 的測試運行器支持使用 setSystemTime 函數編程設置系統時間。

ts
import { test, expect, setSystemTime } from "bun:test";

test("像 1999 年一樣狂歡", () => {
  const date = new Date("1999-01-01T00:00:00.000Z");
  setSystemTime(date); // 現在是 1999 年 1 月 1 日

  const now = new Date();
  expect(now.getFullYear()).toBe(1999);
  expect(now.getMonth()).toBe(0);
  expect(now.getDate()).toBe(1);
});

setSystemTime 函數通常與 生命周期鉤子 結合使用,以配置具有確定性 "假時鐘" 的測試環境。

ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";

beforeAll(() => {
  const date = new Date("1999-01-01T00:00:00.000Z");
  setSystemTime(date); // 現在是 1999 年 1 月 1 日
});

// 測試...

要將系統時鐘重置為實際時間,請調用不帶參數的 setSystemTime

ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";

setSystemTime(); // 重置為實際時間

請參閱 文檔 > 測試運行器 > 日期和時間 獲取使用 Bun 測試運行器進行模擬的完整文檔。

Bun學習網由www.bunjs.com.cn整理維護