feat: 新增股票基础数据获取模块 stock_basic
- 新增 get_stock_basic 和 sync_all_stocks 函数 - 完善 Tushare 数据获取模块体系 - 测试用例重构:从 Mock 改为真实 API 调用 - 更新 API 文档,添加接口使用示例 - 更新开发规范:添加 Mock 使用规范
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user