You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
2 months ago | |
|---|---|---|
| .. | ||
| README.md | 2 months ago | |
| test_amazing_data.py | 2 months ago | |
| test_api.py | 2 months ago | |
| test_kline_v2_2.py | 2 months ago | |
| test_services.py | 2 months ago | |
README.md
后端测试套件
测试文件说明
test_api.py- API 端点集成测试test_services.py- 服务层单元测试
运行测试
运行所有测试
cd backend
pytest
运行特定测试文件
pytest tests/test_services.py -v
运行特定测试类
pytest tests/test_services.py::TestAuthService -v
运行特定测试函数
pytest tests/test_services.py::TestAuthService::test_password_hashing -v
生成覆盖率报告
pytest --cov=app --cov-report=html
# 报告生成在 htmlcov/index.html
运行测试并显示输出
pytest -s -v
测试覆盖
认证服务 (auth_service.py)
- ✅ 密码哈希
- ✅ 密码验证
- ✅ 访问令牌创建
- ✅ 刷新令牌创建
- ✅ 令牌解码
- ✅ API Key 生成
K 线数据服务 (kline_service.py)
- ✅ 获取 K 线数据
- ✅ 获取最新 K 线
- ✅ 获取品种列表
- ✅ 获取周期列表
告警服务 (alert_service.py)
- ✅ 创建告警
- ✅ 获取用户告警
- ✅ 更新告警
- ✅ 删除告警
订阅服务 (subscription_service.py)
- ✅ 创建订阅
- ✅ 获取用户订阅
- ✅ 取消订阅
API 端点
- ✅ 健康检查
- ✅ 认证端点
- ✅ K 线数据端点
- ✅ 用户管理端点
- ✅ 告警管理端点
- ✅ 订阅管理端点
Mock 说明
测试使用 unittest.mock 来模拟数据库连接和外部依赖:
from unittest.mock import Mock, patch, MagicMock
@patch('app.services.kline_service.TimescaleSessionLocal')
def test_get_kline_data(self, mock_session):
mock_db = MagicMock()
mock_session.return_value.__enter__.return_value = mock_db
# ... 测试代码
注意事项
- 测试数据库使用 SQLite 内存数据库,不影响生产数据
- 所有测试都是独立的,可以单独运行
- 测试数据在测试结束后自动清理
- 运行测试前确保已安装测试依赖:
pip install -r requirements.txt