bun:test 允许你在测试中更改当前时间。
这适用于以下任何内容:
Date.nownew Date()new Intl.DateTimeFormat().format()
setSystemTime
要更改系统时间,请使用setSystemTime:
test.ts
useFakeTimers 和 useRealTimers 也受支持,因此使用它们的现有测试可以继续正常工作:
test.ts
重置系统时间
要重置系统时间,不传参数给setSystemTime:
test.ts
使用 jest.now() 获取模拟时间
当时间被模拟时(使用setSystemTime 或 useFakeTimers),jest.now() 返回当前模拟的时间戳:
test.ts
Date 对象的情况下读取模拟时间。
设置时区
默认情况下,bun test 在 UTC(Etc/UTC)中运行。要更改时区,可以向 bun test 传递 TZ 环境变量:
terminal
process.env.TZ:
test.ts
与 Jest 不同,你可以在运行时多次更改时区。