Laravel Duskを初めて使用して
E2Eテストといえば、PlaywrightやCypressといったフレームワークが有名ですが、今回、初めてLaravel Duskを使用する機会がありました。
Laravel Duskで実行できる内容は、PlaywrightやCypressなどのJavaScriptベースのE2Eテストフレームワークとほぼ同じです。
しかし大きく異なる点として、PlaywrightやCypressはChrome、Firefox、Safariなど複数のブラウザでテストを実行できるのに対し、
Laravel Duskは基本的にChromeのみでテストを行います。他のブラウザでもテストは可能なようですが、設定が少し煩雑になりそうです。
E2Eテストフレームワークの技術選定について
実際にE2Eテストフレームワークを選定する際、
「とりあえずPlaywrightやCypressを使えば無難」という考えになりがちです。
ただし、テスト対象のウェブサイトのバックエンドがNode.js製なのか、PHP(Laravel)製なのかといった点も、選定時の判断材料に含めるべきと感じています。※その他にもJava、Python、Rubyなどがありますが、ここでは割愛します。
フロントエンド中心のテストであれば、バックエンドに依存せず好みのE2Eテストフレームワークを導入するのも良いでしょう。
しかし、ユーザー登録やログイン機能、マイページなどのE2Eテストでは、データベースの操作(ユーザーの登録や参照)が必要になる場面が少なくありません。また、テスト実行前にテストデータを登録しておきたい場面もあります。
その際、既存のバックエンドのコードを活用できることが望ましいため、バックエンドがNode.js製かPHP(Laravel)製かで最適なフレームワークが異なると思います。
また、「バックエンドのモックAPIを作成し、それをフロントエンドで利用すれば良い」という意見もあるかもしれませんが、そのためにわざわざモックAPIを作る手間や、継続的なメンテナンスの負担を考えると、やめた方が良い場合も多いです。
こうしたことを考える機会となった2週間でした。