Skip to content

Buns Testrunner unterstützt das programmatische Einstellen der Systemzeit mit der setSystemTime-Funktion.

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

test("feiern wie 1999", () => {
  const date = new Date("1999-01-01T00:00:00.000Z");
  setSystemTime(date); // es ist jetzt 1. Januar 1999

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

Die setSystemTime-Funktion wird häufig in Verbindung mit Lifecycle Hooks verwendet, um eine Testumgebung mit einer deterministischen "gefälschten Uhr" zu konfigurieren.

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

beforeAll(() => {
  const date = new Date("1999-01-01T00:00:00.000Z");
  setSystemTime(date); // es ist jetzt 1. Januar 1999
});

// tests...

Um die Systemuhr auf die tatsächliche Zeit zurückzusetzen, rufen Sie setSystemTime ohne Argumente auf.

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

setSystemTime(); // auf tatsächliche Zeit zurücksetzen

Siehe Docs > Test Runner > Date and time für die vollständige Dokumentation zum Mocken mit dem Bun Testrunner.

Bun von www.bunjs.com.cn bearbeitet