Typact
TYPED HTTP CONTRACTS

测试

Mock Runtime 让测试聚焦在“声明是否生成了正确请求”,无需网络或真实后端。

为什么使用 Mock Runtime

常规 HTTP Mock 往往发生在网络层。Typact 的 Mock Runtime 直接替换传输边界,因此测试更快、更确定,也更容易检查请求配置。

基本测试

from typact import HttpClient, MockRuntime, Query

runtime = MockRuntime(response={"items": []})
client = HttpClient("https://api.example.com", client_runtime=runtime)

@client.get("/items")
async def list_items(page: int = Query(1)) -> dict:
    pass

result = await list_items(page=2)
assert result == {"items": []}
assert runtime.last_request.params == {"page": 2}

测试边界

建议分别验证 URL 与参数构建、认证和 Trace 拦截器、响应类型转换,以及文件上传等容易出错的边界。