Speckit 测试步骤.md 3.97 KB

步骤 0:选一个 feature_key

建议用:

  • 001-recall-activity-history-state ## 步骤 1:/speckit.specify(生成 spec) 在 Trae 的 Copilot Chat 输入:
/speckit.specify 
001-recall-activity-history-state 
ActivityHistoryPage 增加一个空状态提示 + 列表加
载失败提示(不改接口)

背景:
- 页面文件:src/views/recall/
ActivityHistoryPage.vue
- 当前页面仅在 onMounted 调用 
searchOldActivityAPI 获取 activities,没有 
loading/empty/error 视图
- 接口返回结构为 { code, data, msg },不修改接口
与入参

需求:
1) 空状态:当活动列表加载完成且无数据
(activities 为空)时,展示页面内空状态提示(不要 
toast 代替)。
2) 加载失败:当 searchOldActivityAPI 请求失败
(code!=1 或抛异常)时,展示页面内错误提示,并提供
“重试”按钮;点击重试会重新发起列表请求。
3) 不影响页面现有结构:顶部 Banner、底部按钮、"没
找到我的星球活动" 弹窗等保持不变。
4) 样式:项目已引入 TailwindCSS,布局优先用 
Tailwind 类;必要补充用 Less(保持现有文件风
格)。
5) 不新增接口、不改接口返回结构。
验收:
- 正常有数据:列表正常展示,不显示空/错。
- 无数据:显示空状态文案(建议:暂无活动记录)。
- 请求失败:显示失败状态文案(建议:加载失败,请稍后
重试),点击重试后如果成功则显示列表/空状态。

预期产物:

  • specs/001-recall-activity-history-state/spec.md

    步骤 2:处理 [NEEDS CLARIFICATION](如果 Speckit 问你)

    它可能会问这些,你直接用下面“推荐回答”贴回去:

  • Q:失败判断是什么? A: searchOldActivityAPI 返回 code!==1 或请求抛异常都视为失败。

  • Q:失败状态是否要展示 msg? A:优先展示接口 msg (若为空则用“加载失败,请稍后重试”)。

  • Q:空状态是整页替换还是列表区域内? A:在“列表区域”显示空状态,不遮挡顶部 Banner 与底部按钮。

  • Q:是否需要 loading 骨架/加载中? A:本次只做空状态与失败提示,不额外做骨架;但允许加一个轻量 loading 状态避免闪烁(可选,不作为验收点)。

    步骤 3:/speckit.plan(生成 plan)

    在 Copilot Chat 输入:

/speckit.plan 
001-recall-activity-history-state

技术约束:
- Vue3 <script setup>,不引入新库
- 仅修改 ActivityHistoryPage.vue(如确有必要允
许新增一个小的复用组件,但优先不新增文件)
- 不启动/不重启服务,不打开预览

预期产物:

  • specs/001-recall-activity-history-state/plan.md ## 步骤 4:/speckit.tasks(生成 tasks) 在 Copilot Chat 输入:
/speckit.tasks 
001-recall-activity-history-state

预期产物:

  • specs/001-recall-activity-history-state/tasks.md ## 步骤 5:/speckit.implement(按任务落地改代码) 在 Copilot Chat 输入:
/speckit.implement 
001-recall-activity-history-state

你可以在实现阶段额外强调一句(避免它越界):

  • “只改 ActivityHistoryPage.vue,不要改接口,不要新增服务端逻辑,不要打开预览,不要重启任何服务。” ## 步骤 6:自检(不启动服务) 实现完成后只跑已有测试即可:
pnpm test

你改动点会落在哪里(便于你 review)

Speckit 最终大概率会在这个文件里做这些事(都不改接口):

  • ActivityHistoryPage.vue
    • 增加 loading / load_error / error_msg 之类的状态
    • 把 onMounted 里的拉取逻辑抽成 fetch_activities (带 try/catch)
    • 模板里在 List 区域根据状态展示:
    • 列表
    • 空状态
    • 失败状态 + 重试按钮 如果你愿意,我也可以直接给你一份“更硬核的 /speckit.specify 文案”(把每条验收标准写成更可验证的条件),这样后面 plan/tasks/implement 的输出会更稳定。