# 测试策略

**我是卡若。**

我们做的是小团队创业项目，没有专门的测试团队。这意味着：**每一个 Bug 都是直接流失的钱。**

但是，我们也没时间搞那种大厂的、复杂的自动化测试流水线。我们要的是**性价比最高的测试**。

## 1. 测试核心原则

1.  **真机至上**：模拟器跑通了不算，必须拿真机（iPhone, 安卓）测。因为我们的用户都在手机上。
2.  **关键路径必测**：
    -   能不能打开？（首屏加载）
    -   能不能看？（阅读体验）
    -   能不能买？（支付流程 - 赚钱命脉）
3.  **谁写谁测**：开发人员（包括我）必须对自己写的代码负责。

## 2. 测试分层

### 2.1 单元测试 (Unit Test) - 测逻辑
针对 `lib/` 里的纯逻辑代码。
- **工具**: Jest
- **重点**:
    - `lib/book-data.ts`: Markdown 解析对不对？目录树生成对不对？
    - `lib/utils.ts`: 日期格式化、金额计算对不对？

### 2.2 端到端测试 (E2E) - 测流程
针对关键的用户操作路径。
- **工具**: Playwright (推荐) 或 Cypress
- **场景**:
    - 打开首页 -> 点击章节 -> 进入阅读页 -> 滚动到底部。
    - 点击购买 -> 弹出二维码 -> (模拟) 支付成功 -> 解锁章节。

### 2.3 人工测试 (Manual) - 测体验
这是最重要的。
- **设备**:
    - iPhone (Safari, 微信内置浏览器)
    - Android (Chrome, 微信内置浏览器)
    - iPad (响应式布局)
- **检查点**:
    - 字体大小是否舒服？
    - 按钮好不好点？
    - 滑动流不流畅？
    - 骨架屏有没有闪烁？

## 3. 发布前检查清单 (Checklist)

每次推送到 GitHub 之前，必须过一遍：

- [ ] `pnpm build` 能跑通吗？（最基本的）
- [ ] 首页加载速度在 1.5s 以内吗？
- [ ] 所有的图片都加载出来了吗？
- [ ] 在微信里打开链接，分享卡片正常吗？

---
**行动：**
别迷信自动化。在你没钱雇测试之前，你自己就是最好的测试员。哪怕代码写得再烂，只要用户用着爽，就是好代码。
