ホームページ  >  記事  >  PHPフレームワーク  >  Laravel 開発: エンドツーエンドのテストに Laravel Testing を使用する方法は?

Laravel 開発: エンドツーエンドのテストに Laravel Testing を使用する方法は?

王林
王林オリジナル
2023-06-14 22:37:261579ブラウズ

Laravel は、Web アプリケーションに強力なインフラストラクチャとすぐに使える機能を提供する人気の PHP フレームワークです。その 1 つは Laravel Testing で、Laravel アプリケーションに高速なエンドツーエンドのテスト メカニズムを提供します。この記事では、エンドツーエンドのテストに Laravel Testing を使用する方法を学びます。

なぜエンドツーエンドのテストが必要なのでしょうか?

ソフトウェア開発プロセスにおいて、テストはソフトウェアの品質を確保するための重要な部分です。 Web アプリケーションでは、エンドツーエンド テストはテストの最後のステップであり、最終的な承認ステップです。エンドツーエンドのテストは通常​​、自動化されたテスト スクリプトによって実行され、実際のユーザー操作をシミュレートし、Web アプリケーションが適切に動作するかどうかをテストします。

エンドツーエンド テストを使用して次のことを行います:

  • アプリケーションが期待を満たしているかどうかを判断します
  • アプリケーションが操作可能で応答性があるかどうかを判断します
  • バグとエラーのキャプチャ

Laravel Testing の基本知識

Laravel Testing は、Laravel フレームワークに付属するテスト ライブラリであり、テストを作成し、実際のシミュレーションを行うための多くのメソッドとツールが提供されます。ユーザーのインタラクション動作。

Laravel Testing では、テストクラスを作成し、テストに PHPUnit を使用できます。 LaravelTesting は、ルートやページへのアクセスなど、Laravel アプリケーション機能を簡単に使用できるようにする PHPUnit への追加の機能拡張を提供します。

Laravel テストをエンドツーエンド テストに使用する場合、主に次のコンポーネントを使用します:

  • ブラウザ テスト コンポーネント (BrowserKit テスト): HTTP リクエストと応答をシミュレートできます。 test Web アプリケーションが正しく応答できるかどうか。
  • キュー テスト コンポーネント (キュー テスト): Laravel のキュー関数をテストして、それらが正しく実行されることを確認できます。

エンドツーエンド テストの作成

このセクションでは、ログイン ページと登録ページの機能をテストするための簡単なエンドツーエンド テストを作成します。

準備

まず、PHPUnit と Laravel Testing ライブラリをインストールする必要があります。これらの操作は Composer を使用して実行できます。

ターミナル ウィンドウに次のコマンドを入力して、PHPUnit のインストールを完了します:

composer require --dev phpunit/phpunit

次に、次のコマンドを使用して Laravel Testing ライブラリをインストールできます:

composer require --dev orchestra/testbench-browser-kit

インストールが完了したら、テストの作成を開始できます。

テストの作成

TestCase クラスの作成

TestCase クラスを作成し、Laravel クラスから継承して、Laravel Testing の機能を使用できるようにします。ターミナル ウィンドウに次のコマンドを入力します。

php artisan make:test EndToEndExampleTest

このコマンドは、/tests/ ディレクトリに EndToEndExampleTest.php ファイルを作成します。ファイル全体の内容を次のコード例に置き換えます。

<?php

namespace TestsFeature;

use IlluminateFoundationTestingRefreshDatabase;
use LaravelBrowserKitTestingTestCase as BaseTestCase;

abstract class EndToEndTestCase extends BaseTestCase
{
    use CreatesApplication;
}

テストの作成

テストの作成を開始する前に、Laravel アプリケーションが実行されていることを確認する必要があります。次のコマンドを使用してアプリケーションを開始できます:

php artisan serve

これで、ログインと登録の機能をテストするテストを作成できます。 EndToEndExampleTest テスト クラスに、次のテスト メソッドを追加します。

public function testUserRegistration()
{
    $this->browse(function ($browser) {
        // 访问登陆页面
        $browser->visit('/login')
                ->assertSee('Login')
                ->assertSee('Email')
                ->assertSee('Password');
                
        // 注册新用户
        $browser->visit('/register')
                ->type('name', 'John Doe')
                ->type('email', 'johndoe@example.com')
                ->type('password', 'password')
                ->type('password_confirmation', 'password')
                ->press('Register')
                ->assertPathIs('/home');
                
        // 退出登录
        $browser->click('#navbarDropdown')
                ->assertSee('Logout')
                ->clickLink('Logout')
                ->assertPathIs('/');
    });
}

上記のテストでは、Laravel Testing のブラウザ テスト コンポーネントを使用してユーザー操作をシミュレートします。ログイン ページにアクセスしてログイン フォームを送信し、次に登録ページにアクセスして新しいユーザーを作成し、最後にログアウトします。出力が期待どおりであること、および要求されたパスと場所が正しいことを確認します。

次のコマンドを使用してテストを実行できます:

php artisan test --testsuite=Feature

実行が完了すると、コンソールにテスト結果が表示されます。

概要

Laravel Testing は、Laravel フレームワークに付属するテスト ライブラリです。シンプルでフレンドリーなエンドツーエンドのテスト ツールと機能拡張を提供し、作成と機能の拡張を容易にします。テスト、スクリプトを実行します。この記事では、エンドツーエンドのテストに Laravel Testing を使用する方法を学び、基本的なログインおよび登録テストを作成することで、ブラウザーのテストに Laravel Testing を使用する方法を示しました。実際には、必要に応じてテストをカスタマイズし、アプリケーションのさまざまな側面を検証できます。

以上がLaravel 開発: エンドツーエンドのテストに Laravel Testing を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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