Orchestra Testbenchとは
Orchestra Testbench は、パッケージ開発向けのLaravelテストヘルパーです。Orchestra\Testbench\TestCase を継承すると、パッケージ単体でもLaravelアプリケーション内と同じ感覚でテストできます。
Laravel公式ドキュメントのパッケージ開発でも、パッケージテストにはTestbenchを使うことが案内されています。
セットアップ
1
Testbenchをインストールする
2
ベースのTestCaseを作成する
3
必要なら設定やエイリアスを追加する
getPackageAliases() では、config/app.php の aliases と同様に、テスト中に使うファサードエイリアスを登録できます。基本的なテストの書き方
サービスプロバイダーが読み込まれているか、ファサードが期待どおり動くか、設定が反映されているかを最初に確認します。ファイルシステム・データベースのテスト
DBを使うテストでは、defineEnvironment() でSQLiteインメモリを設定し、テスト対象のマイグレーションを読み込みます。
複数Laravelバージョンでのテスト
TestbenchのメジャーバージョンはLaravelのメジャーバージョンに対応します。詳細は公式のVersion Compatibilityを確認してください。
複数バージョンを継続検証する場合は、GitHub Actionsのマトリクスと組み合わせます。設計の考え方はパッケージのバージョン互換性管理を参照してください。
まとめ
Testbenchを使うと、Laravelアプリを手動で用意しなくても、パッケージの振る舞いを実運用に近い形で検証できます。サービスプロバイダー登録、設定、ファサード、DBまでテスト対象に含めることで、リリース後の不具合を大きく減らせます。関連ページ
Laravelパッケージ開発
サービスプロバイダーを中心にしたパッケージ実装の基本を確認します。
パッケージのバージョン互換性管理
LaravelとTestbenchのバージョン戦略とCIマトリクス運用を確認します。