feat: 新增股票基础数据获取模块 stock_basic

- 新增 get_stock_basic 和 sync_all_stocks 函数
- 完善 Tushare 数据获取模块体系
- 测试用例重构:从 Mock 改为真实 API 调用
- 更新 API 文档,添加接口使用示例
- 更新开发规范:添加 Mock 使用规范
This commit is contained in:
2026-01-31 04:30:29 +08:00
parent e625a53162
commit 38e78a5326
10 changed files with 341 additions and 339 deletions

View File

@@ -291,6 +291,36 @@ tests/
└── fixtures/ # 测试数据
```
### 5.3 Mock 使用规范
- **默认不使用 Mock**:单元测试应直接调用真实 API 或服务
- **仅在必要时使用 Mock**
- 测试错误处理场景(如网络超时、服务不可用)
- 测试空结果或边界情况
- 隔离外部依赖的不确定性
- **禁止全面 Mock**:不应为避免配置或环境问题而使用 Mock
- **真实环境验证**:确保至少有一个测试套件直接调用真实 API
```python
# 正确示例:直接调用真实 API
class TestUserService:
def test_get_user(self):
result = get_user('user_id')
assert result.name == "John"
def test_empty_result_with_mock(self): # 特殊场景使用 mock
with patch('module.api_call', return_value=pd.DataFrame()):
result = get_user('invalid_id')
assert result.empty
# 错误示例:过度使用 mock
class TestUserService:
def test_get_user(self):
mock_data = {"name": "John"}
with patch('module.api_call', return_value=mock_data):
result = get_user('user_id')
assert result == mock_data
```
## 6 Git提交规范
### 6.1 提交信息格式
@@ -323,3 +353,4 @@ tests/
- [ ] 无循环依赖
- [ ] 命名符合规范
- [ ] 日志不包含敏感信息
- [ ] 测试未过度使用 Mock