# 测试充分度分析

> 基于代码库实际测试代码分析（2026-03-27）

---

## 测试数量概览

| Crate | 估计测试数 | 主要覆盖 |
|-------|-----------|---------|
| `peri-agent` | ~52 | 消息系统、ReAct 执行器、集成测试 |
| `peri-middlewares` | ~65 | HITL、SubAgent、Skill 加载 |
| `peri-tui` | ~80 | Headless UI 渲染 |
| `rust-relay-server` | ~14 | 协议序列化 |

---

## 覆盖较好的区域

- **消息序列化** (`messages/`) — OpenAI/Anthropic 格式适配有完整 roundtrip 测试
- **ReAct 执行器** — `tests/agent_tests.rs` 覆盖工具调用、优先级、迭代上限
- **HITL 决策** — Approve/Reject/Edit/Respond 四种结果均有测试
- **TUI Headless** — `ui/headless.rs` 覆盖 AssistantChunk/ToolCall/ApprovalNeeded/AskUserBatch 等事件渲染

---

## 关键缺口（高风险）

### 1. 中间件链执行逻辑

`peri-agent/middleware/chain.rs`、`base.rs`、`trait.rs` — 核心机制无直接单元测试，仅靠集成测试间接验证。

### 2. 文件系统工具（逐个工具）

`Read`、`Write`、`Edit`、`Glob`、`Grep`、`folder_operations` — 工具实现本身无单元测试，只有中间件注册的集成测试。

### 3. `ask_user` 工具

跨 `peri-agent` 和 `peri-middlewares` 两个 crate，完全无测试。

### 4. Relay Server 核心

`auth.rs`、`relay.rs`、`client/` — WebSocket 中继、认证逻辑、连接管理均无测试，只有协议序列化有覆盖。

### 5. TUI 命令系统

`/model`、`/relay`、`/history`、`/agents` 等命令处理逻辑无测试。

### 6. LLM 适配器

`llm/openai.rs`、`llm/anthropic.rs` 的真实 API 调用路径无测试（只有 MockLLM 间接验证框架）。

---

## 总体评估

```
消息/协议层  ████████░░  ~80%  ✅
ReAct 执行器 ██████░░░░  ~60%  ⚠️  中间件链缺单元测试
工具实现层   ████░░░░░░  ~40%  ❌  逐工具测试稀少
Relay Server ██░░░░░░░░  ~20%  ❌  仅协议层
TUI 渲染     █████░░░░░  ~50%  ⚠️  命令系统缺失
```

## 优先级补充方向

1. 各文件系统工具的单元测试（边界条件、错误处理）
2. `relay.rs` + `auth.rs` 的集成/单元测试
3. `ask_user` 工具的 oneshot channel 流程测试
4. TUI `/model`、`/history` 等命令的状态机测试
