Node处理器无端口测试
灵感:热门轻量库 node-mock-http(Mock IncomingMessage / ServerResponse)。
> 小四原创:(req,res)=>… → fetchNodeRequestHandler → 得到 Response。
> 单测/脚本验 handler,不必 listen 真实端口。
何时使用
- 单测 Node
(req,res)中间件 - 快速验证 mock API 分支
- CI 里避免端口占用与残留进程
硬约束
- 依赖:
node-mock-http。 - 针对 Node http handler;Web
fetchhandler 用别的方式测。 - 实现要点注释标 小四原创。
- 不做 Playwright/完整浏览器 E2E。
推荐实现
import { fetchNodeRequestHandler } from 'node-mock-http'
import type { IncomingMessage, ServerResponse } from 'node:http'
// 小四原创:Node 处理器无端口测试
export async function callHandler(
handler: (req: IncomingMessage, res: ServerResponse) => void,
url: string,
init?: RequestInit,
) {
return fetchNodeRequestHandler(handler, url, init)
}
Agent 步骤
npm i -D node-mock-http。- 对目标 handler 调
callHandler,断言 status/body。 - 自测:返回
"OK!"的 handler 无需 listen。
不要做
- 为测一行 handler 起真实服务器占端口。
- 与 srvx Web 标准
fetchhandler 测试混为一谈(API 不同)。
附加
- README.md · reference.md · templates/usage.md