测试 API
FastAPI 还提供了一个内置的测试客户端,用于测试您的应用程序。您可以使用 TestClient 来模拟 HTTP 请求,并使用 unittest 断言来检查响应是否正确。
下面是一个测试客户端的示例:
代码语言:javascript复制from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
def test_read_main():
response = client.get("/")
assert response.status_code == 200
assert response.json() == {"message": "Hello World"}
def test_read_item():
response = client.get("/items/42?q=test", headers={"X-Token": "fake-token"})
assert response.status_code == 200
assert response.json() == {"item_id": 42, "q": "test", "user_agent": None, "x_token": "fake-token"}
def test_read_item_not_found():
response = client.get("/items/99")
assert response.status_code == 404
assert response.json() == {"detail": "Item not found"}
在上面的代码中,我们使用 TestClient 创建一个测试客户端,并编写了三个测试函数,分别测试根路径、/items/{item_id} 路径和不存在的路径。
我们使用 client.get 方法来发送 GET 请求,并在 headers 参数中添加 X-Token 头。我们还使用 unittest 的 assertEqual 断言来检查响应状态码和 JSON 数据是否正确。
结论
FastAPI 提供了许多有用的功能,使得设计、实现、测试和文档化 API 变得更加容易和高效。无论您是在构建小型 Web 服务还是大型 Web 应用程序,FastAPI 都可以帮助您快速开发和部署高性能 API。