from fastapi.testclient import TestClient import pytest from app.main import app client = TestClient(app) def test_root_endpoint(): """测试根端点""" response = client.get("/") assert response.status_code == 200 data = response.json() assert data["success"] is True assert data["code"] == 200 assert "服务运行中" in data["message"] def test_health_endpoint(): """测试健康检查端点""" response = client.get("/health") assert response.status_code == 200 data = response.json() assert data["success"] is True assert "checks" in data["data"] assert "database" in data["data"]["checks"] # 验证响应格式 assert isinstance(data, dict) assert "success" in data assert "code" in data assert "message" in data assert "data" in data # 验证success字段为布尔类型 assert isinstance(data["success"], bool) # 验证code字段为整数 assert isinstance(data["code"], int) # 验证message字段为字符串 assert isinstance(data["message"], str) def test_info_endpoint(): """测试服务信息端点""" response = client.get("/info") assert response.status_code == 200 data = response.json() assert data["success"] is True assert data["code"] == 200 assert "服务信息获取成功" in data["message"] # 验证响应的数据部分 assert "data" in data assert "app_name" in data["data"] assert "version" in data["data"] assert "debug_mode" in data["data"] if __name__ == "__main__": pytest.main(["-v", "test_health.py"])