Laravelインターフェースをテストする方法

PHPz
リリース: 2023-04-14 18:07:10
オリジナル
671 人が閲覧しました

Laravel フレームワークを使用してインターフェイスを作成した後、プロジェクトを受け入れるときに、インターフェイス コードの正確さをテストするためのテスト スキルが必要です。以下では、Laravelのインターフェースをテストする方法を紹介します。

テストツール

Laravelでは、インターフェイスのテストにPHPUnitを使用できます。 PHPUnit は、自動テスト、API テスト、さらにはエンドツーエンドのテストをサポートする強力な PHP 単体テスト ツールです。 Laravel 5.5 以降では、PHPUnit がフレームワークの組み込みテスト ツールになっているため、追加のインストールは必要ありません。

テスト ケースの作成

Laravel では、php Artisan make:testコマンドを使用してテスト ケース ファイルを生成できます。このコマンドは、tests/Featureディレクトリにテスト クラスを生成し、このクラスをPHPUnit\Framework\TestCaseクラスから継承します。テスト クラスの各メソッドは、テスト ケースとして自動的に実行されます。例:

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'); }
ログイン後にコピー

summary

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!