ホームページ  >  記事  >  PHPフレームワーク  >  Laravelインターフェースをテストする方法

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

PHPz
PHPzオリジナル
2023-04-14 18:01:45718ブラウズ

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-&gt ;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-&gt を使用します。 ;put()$this->patch() および $this->delete() HTTP リクエストを送信するには、$response-&gt を使用します;assertJson( )$response->assertStatus()$response->assertSeeText()、および $response->assertDontSeeText() など 応答内容についてアサーションを行うメソッド。 Laravel 独自の Auth:: Facade を使用して、認証と認可をシミュレートすることもできます。

以上がLaravelインターフェースをテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。