使用新的 cloudflare:test 辅助函数测试 Durable Object 逐出(eviction)
@cloudflare/vitest-pool-workers 包现在包含了从 cloudflare:test 导出的 evictDurableObject 和 evictAllDurableObjects 测试辅助函数。
这些辅助函数允许您测试 Durable Object 在逐出发生时的行为,模拟闲置 Durable Object 从内存中逐出的实际生产生命周期。
有关更多背景信息,请参阅 Durable Object 的生命周期。
import { evictDurableObject, evictAllDurableObjects } from "cloudflare:test";
import { env } from "cloudflare:workers";
const id = env.COUNTER.idFromName("my-counter");
const stub = env.COUNTER.get(id);
// 逐出特定 stub 所指向的 Durable Object 实例
await evictDurableObject(stub);
// 关闭 WebSockets 而不是将它们休眠
await evictDurableObject(stub, { webSockets: "close" });
// 逐出当前在可逐出命名空间中运行的所有 Durable Objects
await evictAllDurableObjects();这些辅助函数在 @cloudflare/[email protected] 及更高版本中可用。
请在 测试 API 参考和测试 Durable Objects 指南中了解更多信息。