執行環境套件管理器打包器測試執行器程式碼檢查格式化指南參考部落格意見回饋

在 Bun 的測試執行器中設定系統時間

使用 bun:test 中的 setSystemTime 函式在測試中設定系統時間。

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

test("party like it's 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);
});

在 beforeAll 等生命週期鉤子中呼叫 setSystemTime,為測試提供一個確定性的“模擬時鐘”。

TypeScript
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。

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

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

請參閱日期和時間。