グローバルフック
前述のとおり、hook を使用すると、テストプロセスを簡略化し、テストの前後に行う可能性がある反復的なタスクを自動化できます。ただし、フックが複数のテストファイルで同じ場合は、「グローバル」フックを定義してコードの重複を回避することをお勧めします。グローバルフックは Pest.php
構成ファイルで定義されます。
たとえば、Feature
フォルダー内の各テストの前に一部のデータベース操作を実行する必要がある場合は、Pest.php
構成ファイル内で beforeEach()
hook を使用できます。
1pest()->extend(TestCase::class)->beforeEach(function () {2 // Interact with your database...3})->group('integration')->in('Feature');
さらに、フォルダーまたはグループに関係なく、テストスイート全体の前後に実行されるグローバルフックを定義できます。
1pest()->beforeEach(function () {2 // Interact with your database...3});
実際、フック ドキュメントで説明されているフックはすべて、Pest.php
構成ファイルでも使用できます。
1pest()->extend(TestCase::class)->beforeAll(function () {2 // Runs before each file...3})->beforeEach(function () {4 // Runs before each test...5})->afterEach(function () {6 // Runs after each test...7})->afterAll(function () {8 // Runs after each file...9})->group('integration')->in('Feature');
Pest.php
構成ファイルで定義された before*
hook は、個々のテストファイルで定義された hook よりも前に実行されます。同様に、Pest.php
構成ファイルで指定された after*
hook は、個々のテストファイルで定義された hook の後に実行されます。
テストスイートの設定時には、テスト対象のコードを分離し、特定の条件や動作をシミュレートするために、特定の機能やオブジェクトをモックする必要がある場合があります。これは、Mockery などのモッキングライブラリまたはフレームワークを使用して行うことができます。: モッキング