litestar-testing 用于为 Litestar 应用编写结构化测试。核心是选对客户端形态:TestClient 用于无需与异步资源共享事件循环的同步测试;AsyncTestClient 用于测试、fixture 与资源需共享同一事件循环的场景;create_test_client 用于内联组装一次性应用或小规模应用子集;websocket_connect() 用于 WebSocket 契约测试;子进程实时服务器助手用于进程内客户端无法正确模拟的传输,如无限 SSE 流。
主要能力与规则:以确定性的配置、依赖与生命周期边界构建 fixture,在测试间重置 override 与 fixture 状态;通过注入假实现或模拟依赖隔离外部 I/O,优先依赖注入而非对底层代码打补丁;断言完整契约,包括状态码、响应体、头部、Cookie、副作用与失败载荷结构;有意覆盖错误路径,如校验失败、应用级异常映射、事件监听器失败、分层 override 优先级与 schema/文档回归。
使用方式:测试保持时间、随机性与 I/O 的确定性;仅在测试需要时开启 app.debug;单体处理器或单一契约测试时让应用装配靠近测试;自定义异常处理器需完整断言载荷与头部;每个依赖边界用一个假实现;优先显式 fixture 而非隐藏全局状态。参考文件按需阅读:客户端选择、fixture、异步事件循环、WebSocket、阻塞 portal、子进程实时服务器见 references/client-patterns.md;依赖 override、模拟依赖、异常契约、事件发射、监听器失败、schema/文档回归、404/405 与分层优先级见 references/failure-patterns.md。
适用场景与限制:适合覆盖 Litestar 同步与异步请求、WebSocket、依赖注入 override、异常契约、事件总线和 OpenAPI schema 回归。注意避免用 TestClient 搭配创建循环绑定资源的异步 fixture、只断言状态码、override 跨测试泄漏、把 WebSocket 当普通 HTTP 测试、用进程内客户端处理官方指出不适配的传输,以及把仅调试栈信息当作受测契约。验证清单涵盖客户端选择与事件循环匹配、启动关闭行为、override 作用域、稳定失败载荷、事件副作用、应用级 404/405、分层 override、WebSocket 收发、实时服务器助手使用与 schema 回归覆盖。资料未提供安装命令、版本要求与具体代码示例。