ホームページ > 記事 > PHPフレームワーク > Laravelインターフェースをテストする方法
Laravel フレームワークを使用してインターフェイスを作成した後、プロジェクトを受け入れるときに、インターフェイス コードの正確さをテストするためのテスト スキルが必要です。以下では、Laravelのインターフェースをテストする方法を紹介します。
Laravelでは、インターフェイスのテストにPHPUnitを使用できます。 PHPUnit は、自動テスト、API テスト、さらにはエンドツーエンドのテストをサポートする強力な PHP 単体テスト ツールです。 Laravel 5.5 以降では、PHPUnit がフレームワークの組み込みテスト ツールになっているため、追加のインストールは必要ありません。
Laravel では、php Artisan make:test
コマンドを使用してテスト ケース ファイルを生成できます。このコマンドは、tests/Feature
ディレクトリにテスト クラスを生成し、このクラスを PHPUnit\Framework\TestCase
クラスから継承します。テスト クラスの各メソッドは、テスト ケースとして自動的に実行されます。例:
<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; class ExampleTest extends TestCase { /** * A basic test example. * * @return void */ public function testBasicTest() { $response = $this->get('/'); $response->assertStatus(200); } }
このサンプル コードでは、testBasicTest
のメソッドを作成し、$this->get()
メソッドを使用して HTTP GET リクエストを送信しました。次に、$response->assertStatus()
メソッドを使用して、応答ステータス コードが 200 であるかどうかを確認します。
Laravel では、 $this->get()
、$this->post()
を使用できます。 $this->put()
、$this->patch()
、および $this->delete()
を使用して HTTP リクエストを送信します。これらのメソッドは、ルート メソッドとコントローラー メソッドを自動的に実行し、HTTP 応答オブジェクトを返します。たとえば、GET リクエストを /users
ルートに送信するには、テスト クラスに次のように記述します。
public function testGetUsers() { $response = $this->get('/users'); $response->assertStatus(200); }
Laravel では、 $response->assertJson()
、$response->assertStatus()
、$response->assertSeeText()
および を使用できます。 $response-> ;assertDontSeeText()
および応答コンテンツをアサートするその他のメソッド。
応答コンテンツに JSON 文字列が含まれているかどうかを確認したい場合は、$response->assertJson()
メソッドを使用できます。が 200 の場合、$response->assertStatus(200)
メソッドを使用できます。応答コンテンツに特定のテキストが含まれているかどうかを確認したい場合は、$response->assertSeeText('Hello World')
メソッドを使用できます。応答コンテンツに特定のテキストが含まれていないかどうかを確認したい場合は、$response->assertDontSeeText('Hello World')
メソッドを使用できます。
たとえば、test/users
ルートによって返されるユーザー リストは配列である必要があり、次のように記述できます。
public function testGetUsers() { $response = $this->get('/users'); $response->assertJson([ 'users' => [], ]); }
Laravel では、Laravel 独自の Auth::
Facade を使用して認証と認可をシミュレートできます。たとえば、Auth::login()
メソッドを使用してユーザーのログインをシミュレートしたり、Auth::ShouldReceive()
メソッドを使用して、ユーザーには特定の権限があります。お待ちください。
たとえば、/dashboard
ルートにアクセスするために認証が必要かどうかをテストしたい場合は、次のように記述できます:
public function testDashboardRequiresAuthentication() { $response = $this->get('/dashboard'); $response->assertRedirect('/login'); }
Laravel では、インターフェイスのテストに PHPUnit を使用できます。$this->get()
、$this->post()
、$this-> を使用します。 ;put()
、$this->patch()
および $this->delete()
HTTP リクエストを送信するには、$response-> を使用します;assertJson( )
、$response->assertStatus()
、$response->assertSeeText()
、および $response->assertDontSeeText()
など 応答内容についてアサーションを行うメソッド。 Laravel 独自の Auth::
Facade を使用して、認証と認可をシミュレートすることもできます。
以上がLaravelインターフェースをテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。