用途:该技能帮助以 Component Story Format 3(CSF3)编写和维护 Storybook 故事与交互测试,适用于组件文档与实时示例、play 函数交互测试、视觉回归测试、可访问性验证、设计系统维护以及组件隔离开发。资料明确说明不适用于端到端测试(应用 Playwright/Cypress)、API 集成测试(应用 Vitest/Jest)、完整应用测试或性能测试。
主要能力:基础故事使用 export const Default: Story = { args };复杂布局使用 render;通过 const meta = { component, args } satisfies Meta 定义默认值与 argTypes。交互测试用 play: async ({ canvas, userEvent, args }),并提供 canvas 与 userEvent;查询优先 canvas.getByRole('button');断言用 await expect(args.onPress).toHaveBeenCalled();支持 beforeEach 钩子、play 组合(await OtherStory.play?.(context))、autodocs 标签、控件定制、装饰器、parameters、Chromatic 快照控制与 a11y 断言。
用法要点:userEvent 方法必须 await;事件回调用 fn() 模拟;图标按钮需提供 aria-label;门户内容用 within(canvasElement.ownerDocument.body) 作用域查询;动画场景用 waitFor 包裹断言;避免用布尔 && 做条件渲染,改用三元表达式以保持快照一致。
常见错误与修复:多组件布局误用 args,应改用 render;未 await userEvent;手动使用 within(canvasElement),应从 play 上下文解构 canvas;优先 getByRole 等查询而非 getByTestId;meta 缺少默认 args 导致控件显示占位符;暴露不可序列化 props(如 className、ref、style 需在 argTypes 中禁用);多个按钮匹配时用 { name: '...' } 限定;A11y 失败时补 label 或 aria-label。
限制与分工:该技能不做端到端、API 集成、完整应用或性能测试。故事结构审查可交给 code-reviewer,可访问性审计可交给 Explore 代理,Chromatic 失败分析可交给 Task 代理。具体安装命令与版本信息资料未提供。