Skip to main content
bun:test 允许你在测试中更改当前时间。 这适用于以下任何内容:
  • Date.now
  • new Date()
  • new Intl.DateTimeFormat().format()

setSystemTime

要更改系统时间,请使用 setSystemTime
test.ts
Jest 的 useFakeTimersuseRealTimers 也受支持,因此使用它们的现有测试可以继续正常工作:
test.ts

重置系统时间

要重置系统时间,不传参数给 setSystemTime
test.ts

使用 jest.now() 获取模拟时间

当时间被模拟时(使用 setSystemTimeuseFakeTimers),jest.now() 返回当前模拟的时间戳:
test.ts
使用它可以在不创建新的 Date 对象的情况下读取模拟时间。

设置时区

默认情况下,bun test 在 UTC(Etc/UTC)中运行。要更改时区,可以向 bun test 传递 TZ 环境变量:
terminal
或者在运行时设置 process.env.TZ
test.ts
与 Jest 不同,你可以在运行时多次更改时区。