FastAPI 提供了强大的测试工具,使你能够方便地编写和执行单元测试、集成测试和端到端测试。FastAPI 使用 TestClient 类来模拟客户端请求,使得你可以在测试中发送请求并断言预期的响应。

以下是一个简单的 FastAPI 测试的示例:

1. 创建一个 FastAPI 应用(main.py):
   # main.py
   from fastapi import FastAPI

   app = FastAPI()

   @app.get("/")
   def read_root():
       return {"message": "Hello, World!"}

   @app.get("/items/{item_id}")
   def read_item(item_id: int, query_param: str = None):
       return {"item_id": item_id, "query_param": query_param}

2. 编写测试脚本(test_main.py):
   # test_main.py
   from fastapi.testclient import TestClient
   from main import app

   client = TestClient(app)

   def test_read_root():
       response = client.get("/")
       assert response.status_code == 200
       assert response.json() == {"message": "Hello, World!"}

   def test_read_item():
       response = client.get("/items/42?query_param=test")
       assert response.status_code == 200
       assert response.json() == {"item_id": 42, "query_param": "test"}

3. 运行测试脚本:

   使用测试运行器(例如 pytest)运行测试脚本:
   pytest test_main.py

   如果你还没有安装 pytest,可以使用以下命令安装:
   pip install pytest

在这个例子中,我们使用 TestClient 创建了一个测试客户端,并编写了两个测试函数 test_read_root 和 test_read_item。这些测试函数使用断言来验证接口的行为是否符合预期。

FastAPI 测试工具还支持异步测试,允许你测试异步路径操作函数。此外,你还可以使用 monkeypatch 参数来模拟环境中的变量、配置等。

测试是确保代码质量和稳定性的重要手段,通过编写和运行测试,你可以更自信地开发和维护 FastAPI 应用程序。阅读 FastAPI 文档中关于测试的章节可以获取更多详细信息:[Testing FastAPI](https://fastapi.tiangolo.com/tutorial/testing/)。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7401/FastAPI