
## 项目结构

wordcount/
├── data/               # 存放小说文本（示例含生成测试数据的脚本）
├── config/
│   └── settings.yaml   # 配置文件
├── src/
│   ├── __init__.py
│   ├── core.py         # 核心逻辑
│   └── file_io.py      # 文件操作
└── tests/
    ├── __init__.py
    ├── conftest.py     # pytest配置
    ├── unit/
    │   ├── test_tokenizer.py
    │   └── test_counter.py
    ├── integration/
    │   └── test_pipeline.py
    └── performance/
        └── test_benchmark.py

## 关键测试点说明
​测试类型​	​测试目标​	​测试方法​
​单元测试​	验证分词器独立功能	提供固定输入，断言输出符合预期
​集成测试​	验证完整流程的协同工作	使用临时目录模拟真实环境，验证端到端结果
​性能测试​	确保算法时间复杂度合理	生成大数据量，监控执行时间与内存使用
​边界测试​	处理空文件/无数据情况	添加空文件测试用例
​异常测试​	处理无效路径/错误编码	故意传入错误参数验证异常处理

## 开发流程演示

### ​先写测试​（TDD核心）

先写测试再实现功能
```
    def test_empty_file_processing():
        counter = WordCounter()
        counter.config = {"data_dir": "/empty"}
        assert counter.process_files() == {}
```

### 实现功能直到测试通过
```
def process_files(self):
    if not Path(self.config['data_dir']).exists():
        return {}
    # ...实际实现...
```

### 持续优化
```
# 发现性能瓶颈后优化
def tokenize(self, text: str, stop_words: set):
    # 优化为集合查找 O(1)
    return [w for w in text.split() if w not in stop_words]
```

### 运行测试

```
# 安装依赖
pip install pytest pytest-benchmark jieba pyyaml

# 运行所有测试
pytest tests/ -v

# 运行性能测试
pytest tests/performance/ -v --benchmark-only
```

这个项目完整展示了测试驱动开发的完整流程，涵盖单元测试、集成测试、性能测试等关键环节，符合工业级代码质量标准。