SuperAPI AI 工具集

rust-api-test-harness

编程与开发

查看项目

更新于 10-16 01:49

技能介绍

用途:让 Rust API 开发走测试优先、可复现、可接入 CI 的流程,尤其适合需要黑盒集成测试、随机端口启动应用和调试 HTTP 服务的场景。

主要能力:先检查 Cargo.toml、工作区结构、src/main.rs、src/lib.rs、路由/启动模块、tests/、迁移、Docker Compose 与 CI 工作流;找到应用边界,必要时把启动代码抽成可复用函数,使测试能绑定随机本地端口并传入显式状态;在改动行为前先写或更新集成测试,API 测试默认放在 tests/ 下;提供 spawn_app 辅助函数,每个测试用例启动一次服务、捕获 base URL 并管理一次性测试资源;用 reqwest 调用公开 HTTP 契约,而非框架内部请求对象;按需使用真实 Postgres、外部 API 的 mock HTTP 服务器,并为每个测试使用唯一资源名。

使用方式:启动函数应接收基础设施而非在 handler 模块内创建。Actix 可监听同步 std::net::TcpListener,Axum 使用 Tokio 异步监听类型。测试夹具保留 tokio::spawn 返回的 JoinHandle,以便发现服务任务意外结束并在清理时中止。断言先看状态码与响应头,再通过公开 API 验证持久化副作用;负例(缺字段、畸形载荷、重复提交、未授权、上游失败、超时)作为一等行为断言。涉及数据库读 references/database-test-isolation.md,涉及第三方 HTTP 读 references/external-http-mocks.md。

验证:在 Rust 项目根目录运行 path/to/rust-api-test-harness/scripts/check-rust-service.sh,默认执行 cargo fmt --all --check、cargo clippy --all-targets --all-features -- -D warnings、cargo test --all-features。设置 RUST_API_TEST_HARNESS_SKIP_CLIPPY=1 可仅跳过 clippy。若项目 CI 不使用全部特性,应沿用仓库现有 CI 命令并说明偏差。

限制:资料未提供该技能的安装方式、收费与价格、支持平台及效果数据;具体项目结构差异需按实际仓库调整。