vite-plugin-mockを使用してMock.jsを扱いやすくする

この記事を書いたチーム:tenko

はじめに

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

以前、Mock.jsというライブラリを使用して、フロントエンドからバックエンドAPIへのHTTPリクエストのテストをバックエンドサーバーなしで実施する方法をご紹介しました。

ただ、Mock.js単体でAPIのテストを行う場合、テスト対象のコンポーネントにテストコードを記述する必要があり、ソース管理において意図せずテストコードが紛れ込むといったリスクがあり、少々悩ましい部分がありました。

そこで今回は、Mock.jsを扱いやすくしてくれるvite-plugin-mockをご紹介したいと思います。

vite-plugin-mockVite用のプラグインで、このプラグインを導入することでMock.jsのテストコードを別ファイルに分離し、vite.config.jsの設定によってモックを使用するかどうかを制御できるようになります。

これにより、テストコード自体もGitなどで管理しやすくなり、テストコードの有効化/無効化も簡単に行うことができます。

 

インストールと各種設定

まずはvite-plugin-mockのインストールを行います。なお、Mock.jsはインストール済みの前提とします。

vite-plugin-mockGitHubページに記載の手順にしたがってインストールします。

ちなみにGitHubでは最新バージョンがv2.9.1となっていますが、インストールされるバージョンはv3.0.2です(2025/04/15現在)。

 

次にvite.config.jsvite-plugin-mockの設定を追加していきます。

vite.config.jsは各サービスの環境によってさまざまな設定がされていると思いますので、今回のポイントを抜粋します。

vite-plugin-mockからviteMockServeをインポートし、pluginsの配列に追加します。viteMockServeは関数で、引数に設定値を指定します。enableの設定をfalseにするとテストコードが無効になるため、実在するバックエンドAPIにリクエストを送信したい場合はenable: falseにします。

 

これで前準備は完了したので、テストコードを作成していきます。

 

ファイル構成

vite.config.jsmockPathの設定値に従ってフォルダを作成し、その中にモックファイルを作成します。mockPathの既定値は’mock’なので、mockPathを設定していない場合は、プロジェクトルート直下にmockフォルダを作成し、その中にモックファイルを作成します。モックファイルは複数作成することもできるので、機能やAPIパスなど決まった単位で分割すると管理しやすくなるかと思います。

 

テストコーディング

ファイルの準備ができたらコーディングしていきます。

以下にGETメソッドを処理する簡単なサンプルコードを示します。

配列1要素に1定義、各要素に対して、”url”にモックするURL”method”HTTPメソッド、”response”に返したいレスポンスを指定します。なお、URLの指定はMock.js単体の時のようにクエリパラメータを意識する必要はありません。

responseに指定する関数の引数reqにはリクエスト情報が格納されており、リクエスト時のヘッダやボディに設定された値を参照できます。クエリパラメータもパースされてオブジェクトとして参照できるようになっています。

あとは呼び出し元で通常どおりHTTPリクエストを送信するだけで、テストコードに設定したレスポンスを受け取れるようになります。呼び出し元のコードをテスト用に実装変更する必要はありません。また、Mock.jsのランダムデータ生成機能を利用してランダムなデータを返すこともできます。

 

まとめ

Mock.js単体でも簡単にモックを使用したテストができますが、プラグインであるvite-plugin-mockを使用することでテストコードの管理がしやすくなり、モックの有効化/無効化もvite.config.jsで一元管理できるため、使い勝手が向上します。

APIモッキングについては他にも様々なライブラリがあるため、いろいろ試してみると面白いと思います。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス