LOADING...
データを取得中です。少々お待ちください。
LOADING...
データを取得中です。少々お待ちください。
※この記事ではフレームワークはNuxt.jsを使用しています。
https://n-laboratory.jp/articles/nuxt3-storybook8
https://n-laboratory.jp/articles/nuxt3-vitest-unittest
・Nuxt.js: 3.15.0
・Storybook: 8.4.7
・Vitest: 2.1.8
1. 以下のコマンドを実行します。 @storybook/experimental-addon-testは必要なパッケージのインストール、セットアップを自動で行います。
2. Nuxtの自動インポートをインタラクションテストでも有効にするための必要なライブラリをインストールします。不要な場合は読み飛ばしてください。
※Nuxtで自動インポートされるrefなどの関数やcomponentsディレクトリに存在するコンポーネントがVitestでは自動インポートされません。以下のライブラリをインストールすると自動インポートした状態でテストが実行できるようになるため、ここではあわせてインストールしています。
・unplugin-auto-import
・unplugin-vue-components
3. ルート配下に vitest.workspace.ts が新規作成されていることを確認します。Nuxtの自動インポートをインタラクションテストでも有効にするため vitest.workspace.ts に以下を追記して保存します。手順2を読み飛ばした場合はこちらも読み飛ばしてください。
※vitest.workspace.ts はVitestのワークスペース機能を利用しています。1つのプロジェクト内で複数のvitestの設定を使い分けることができます。
※今回作成された vitest.workspace.ts はStorybookのインタラクションテスト用の設定ファイルです。
4. package.json に以下のスクリプトを追加します。
※オプションに --project=storybook を指定することで *.stories.ts ファイルのみをテスト対象とすることができます。
1. componentsディレクトリに Button.vue を新規作成して以下の内容で保存します。
2. pagesディレクトリに index.vue を新規作成して以下の内容で保存します。
3. pagesディレクトリに index.stories.ts を新規作成して以下の内容で保存します。
4. テストを実行します。テストが成功していることを確認します。
※同プロジェクトですでにユニットテストが実装さている場合は、既存のユニットテストが1件も実行されていないことも併せてご確認ください。
1. Storybookを起動します。
2. 該当のストーリを表示します。Component testsタブを選択すると、テストの行単位でどのような操作が行われたかを確認することができます。
※ここではhttp://localhost:6006/?path=/story/index--click-buttonにアクセスしています。
以上で全ての手順は完了になります