プラグイン
このセクションでは、公式およびコミュニティが開発した、推奨するプラグインについて説明します。プラグインは主に、名前空間付き関数、コンソールコマンド、カスタム期待値、および追加のコマンドラインオプションを提供して、デフォルトのPestエクスペリエンスを拡張します。
プラグイン開発者の方は、Pestプラグインの作成方法の詳細については、プラグイン作成に関するドキュメントを参照してください。
以下のプラグインはPestチームによって保守されています。
Faker
ソースコード: github.com/pestphp/pest-plugin-faker
PestのFakerプラグインの使用を開始するには、Composer経由でプラグインをrequireする必要があります。
1composer require pestphp/pest-plugin-faker --dev
プラグインをインストール後、名前空間付きのfake
関数を使用して、テスト用の偽のデータを作成できます。
1use function Pest\Faker\fake;2 3it('generates a name', function () {4 $name = fake()->name; // random name...5 6 //7});
関数にロケールを提供することで、fake()
関数で使用する「ロケール」を指定することもできます。
1use function Pest\Faker\fake;2 3it('generates a portuguese name', function () {4 $name = fake('pt_PT')->name; // Nuno Maduro5 6 //7});
APIに関する包括的な詳細を含むFakerの詳細については、公式ドキュメントを参照してください。
Laravel
ソースコード: github.com/pestphp/pest-plugin-laravel
PestのLaravelプラグインの使用を開始するには、Composer経由でこのプラグインをrequireする必要があります。
1composer require pestphp/pest-plugin-laravel --dev
このプラグインは、デフォルトのPestインストールに追加のArtisanコマンドと関数を追加します。たとえば、tests/Feature
ディレクトリに新しいテストを作成するには、pest:test
Artisanコマンドを使用できるようになりました。
1php artisan pest:test UsersTest
テストをtests/Unit
ディレクトリに配置するには、テスト作成時に--unit
オプションを指定できます。
1php artisan pest:test UsersTest --unit
pest:dataset
Artisanコマンドを実行すると、tests/Datasets
ディレクトリに新しいデータセットが作成されます。
1php artisan pest:dataset Emails
ご存じのとおり、Laravelはフィーチャテストで利用できるさまざまなアサーションを提供しています。PestのLaravelプラグインを使用すると、通常どおりこれらのアサーションすべてにアクセスできます。
1it('has a welcome page', function () {2 $this->get('/')->assertStatus(200);3});
さらに、このプラグインの助けを借りて、actingAs
、get
、post
、delete
などの名前空間付き関数を使用する際に$this
変数をバイパスすることができます。
1use function Pest\Laravel\{get};2 3it('has a welcome page', function () {4 get('/')->assertStatus(200);5 // same as $this->get('/')...6});
この便利な機能を別の例で説明するために、認証されたユーザーが制限されたダッシュボードページにアクセスするテストを作成できます。
1use App\Models\User;2use function Pest\Laravel\{actingAs};3 4test('authenticated user can access the dashboard', function () {5 $user = User::factory()->create();6 7 actingAs($user)->get('/dashboard')8 ->assertStatus(200);9});
ご期待のとおり、以前は$this->
経由でアクセスできたすべてのアサーションは、名前空間関数として使用できます。
1use function Pest\Laravel\{actingAs, get, post, delete, ...};
Laravelウェブサイトで完全なテストドキュメントを見つけることができます:laravel.com/docs/11.x/testing.
Livewire
ソースコード: github.com/pestphp/pest-plugin-livewire
PestのLivewireプラグインをインストールするには、Composer経由でプラグインをrequireする必要があります。
1composer require pestphp/pest-plugin-livewire --dev
プラグインをインストール後、名前空間付きのlivewire
関数を使用して、Livewireコンポーネントにアクセスできます。
1use function Pest\Livewire\livewire; 2 3it('can be incremented', function () { 4 livewire(Counter::class) 5 ->call('increment') 6 ->assertSee(1); 7}); 8 9it('can be decremented', function () {10 livewire(Counter::class)11 ->call('decrement')12 ->assertSee(-1);13});
Watch
ソースコード: github.com/pestphp/pest-plugin-watch
Pestの「watch」プラグインをインストールするには、Composer経由でプラグインをrequireする必要があります。
1composer require pestphp/pest-plugin-watch --dev
fswatch
もインストールして、ファイルの変更をPestが監視できるようにしてください。
プラグインとfswatch
の両方がインストールされると、Pest実行時に--watch
オプションを使用できるようになります。このオプションは、アプリケーションを監視し、指定されたディレクトリのリスト内のファイルが変更されたときにテストを自動的に再実行するようにPestに指示します。
1pest --watch
デフォルトでは、プラグインは以下のディレクトリを監視します。
1tests/2app/3src/
監視対象ディレクトリをカスタマイズするには、ディレクトリのコンマ区切りのリスト(アプリケーションルートを基準とする)を--watch
フラグに渡します。
1pest --watch=app,routes,tests
このセクションでは、プラグインがPestエクスペリエンスをどのように向上させるかを見てきました。次は、Pestを使用してチームのタスクと責任を管理する方法を見てみましょう:チーム管理