Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Storybookのインタラクションテストで UIの仕様をテストする
Search
kentaro ishida
January 30, 2026
33
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Storybookのインタラクションテストで UIの仕様をテストする
kentaro ishida
January 30, 2026
More Decks by kentaro ishida
See All by kentaro ishida
UXから考えるクライアントサイドのパフォーマンス監視設計
ishida2002
0
30
Renovateを(できるだけ)ノールックマージする
ishida2002
0
16
JavaScriptの便利な構文に潜む罠
ishida2002
0
16
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
190
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
360
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
First, design no harm
axbom
PRO
2
1.2k
Transcript
Storybookのインタラクションテストで UIの仕様をテストする 石田健太郎 2026年1月30日
自己紹介 石田 健太郎(いしだ けんたろう) 2002年生まれの23歳 株式会社kubell 新卒2年目のフロントエンドエンジニア 「Chatwork」のブラウザ版・デスクトップ版の 開発を担当
今回のテーマはStorybook
Storybook UIコンポーネントのカタログツール コンポーネントを独立した環境で開発・表示 ドキュメント化と視覚的な確認が可能 チーム全体でコンポーネントの状態を共有 こんなことに使える コンポーネントの視覚的な確認 Propsのバリエーション管理 デザインシステムのドキュメント化
今回はデモがあります
デモアプリ こんなアプリを作ってきました
デモタイム
デモアプリ ざっくりこんな感じ プロフィールを編集できるアプリ インライン編集的なことができるコンポーネントがコア これをStorybookで見てみましょう
デモタイム
コンポーネントの仕様 仕様はざっくりこんな感じ 編集ボタンを押すと編集モードに移行する 編集モードではテキストを編集できる 編集モードでキャンセルを押すと破棄される 編集モードで保存を押すとテキストが更新される 保存されたらフィードバックが表示される 3秒後にフィードバックが消える
コンポーネントの仕様 もし仕様変更があったら? 編集ボタンを押すと編集モードに移行する 本文をクリックでも編集モードに移行したいな〜 編集モードではテキストを編集できる 編集モードでキャンセルを押すと破棄される 確認ダイアログ出したいな〜 編集モードで保存を押すとテキストが更新される 保存されたらフィードバックが表示される 3秒後にフィードバックが消える
短いから5秒にしたいな〜
テスト、したくないですか?
できます! (しかも結構簡単に)
インタラクションテスト for Storybook Storybook上でユーザー操作をシミュレートして、UIの動作を検証できる機能 何が嬉しいのか ストーリー(表示例)がそのままテストになる Play関数で操作を書くだけ Storybook UI上で実行結果が見える 詳しくは公式をご覧ください
https://storybook.js.org/docs/writing-tests/interaction-testing
デモタイム
便利!
どうやって書くの?
Play関数の基本 主に3つのAPIを利用 1. within() 対象要素のスコープを指定 コンポーネント内の要素を検索 2. userEvent ユーザー操作のシミュレーション click,
type, hover など 3. expect() 検証 UIの状態が期待通りか確認
Play関数のコード こんな感じ export const WithInteractionTest = { play: async ({
canvasElement }) => { const canvas = within(canvasElement); // 編集ボタンをクリック await userEvent.click(canvas.getByText('編集')); // テキストを入力 await userEvent.type(canvas.getByRole('textbox'), 'New Text'); // 保存ボタンをクリック await userEvent.click(canvas.getByText('保存')); // 保存成功メッセージを検証 await expect(canvas.getByText('保存しました!')).toBeInTheDocument(); } }
CIでも動かせる
テストの自動実行 @storybook/addon-vitest を導入して以下のコマンドを実行するだけ vitest run 何が起こるか ストーリーがそのままテストケースになる playで記述したテストが実行される テスト結果が表示される ストーリーで書いたインタラクションがそのままテストとして機能
まとめ
まとめ Storybookのインタラクションテストを使えばUIの仕様をテストできる Play関数でユーザー操作をシミュレート within , userEvent , expect の3つのAPIで記述 ストーリーがそのままテストケースになる
ドキュメントとテストの一石二鳥 CIで自動実行できる @storybook/addon-vitest を導入するだけ ストーリーで書いたインタラクションがテストとして機能 ぜひ使ってみてください
終わりに デモアプリをGitHubで公開しています https://github.com/ishida-0622/storybook-play-demo 今回紹介した内容はVitest環境を前提としています 参考 Storybook https://storybook.js.org/docs/writing-tests/interaction-testing https://storybook.js.org/docs/writing-tests/integrations/vitest-addon
None