ホームページ >バックエンド開発 >PHPチュートリアル >phpunitデータプロバイダーを備えた雄弁工場を使用します
または単一のテストケースで直接モデルを作成できます。さまざまなデータに対してテストする必要があるテストケースがある場合は、EloquentモデルとPHPunitのデータプロバイダーを使用する必要がある場合があります。 setUp()
機能テストでデータプロバイダーを使用すると、フレームワークの
したがって、それらを使用したい場合は、次のエラーが発生します。
TestCase
上記のテストを実行する場合、使用しているLaravelのバージョンに応じて、上記のテストを実行する場合は、次のようなエラーを取得する必要があります。これは、Laravel 11で得たエラーを示します。
setUp()
phpunit
これは、データプロバイダーコードが実行されている場合、Laravelアプリケーションがまだ開始されていないためです!害虫のPHPユーザーの場合、バインドされたデータセットの例は、モデルデータに閉鎖を使用する方法を示しています。
<?php namespace Tests\Feature; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use PHPUnit\Framework\Attributes\DataProvider; use Tests\TestCase; class ExampleTest extends TestCase { use RefreshDatabase; #[DataProvider('nonAdminUsers')] public function test_non_admin_users_cannot_access_admin($user): void { $response = $this ->actingAs($user()) ->get('/admin') ->assertStatus(403); } public static function nonAdminUsers(): array { return [ [User::factory()->player()->create()], [User::factory()->coach()->create()], [User::factory()->owner()->create()], ]; } }phpunitでは、すぐにデータを作成することなく、閉鎖を使用してデータプロバイダーを介してテストにコードを渡すことができます。
<code>$ vendor/bin/phpunit tests/Feature/ExampleTest.php There was 1 PHPUnit error: 1) Tests\Feature\ExampleTest::test_non_admin_users_cannot_access_admin The data provider specified for Tests\Feature\ExampleTest::test_non_admin_users_cannot_access_admin is invalid A facade root has not been set. tests/Feature/ExampleTest.php:18</code>呼び出しに注意してください。モデルを別の場所で使用する必要がある場合は、変数に割り当てるだけです。現在、ファクトリーデータはテストで作成されています。これはまさに私たちが望むものです! LaravelのHTTP機能テストの詳細については、ドキュメントをご覧ください。
以上がphpunitデータプロバイダーを備えた雄弁工場を使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。