ホームページ > バックエンド開発 > PHPチュートリアル > PHP で単体テストを行うにはどうすればよいですか?

PHP で単体テストを行うにはどうすればよいですか?

WBOY
リリース: 2024-04-19 11:33:02
オリジナル
512 人が閲覧しました

単体テストはソフトウェアの最小のコンポーネント (関数、メソッドなど) をチェックします。PHP は PHPUnit フレームワークを通じて単体テストできます。まずPHPUnitをインストールし、次にテストクラス(TestCaseから拡張)を作成し、次に「test」で始まるテストメソッドを記述し、assertEqualsを使用して2つの値が等しいことをアサートします。実際のケースでは、StringUtilsTest.php は StringUtils クラスのメソッド ucfirst() をテストします。モックは、データベースの依存関係のシミュレーションなど、コードを分離するために使用されます。このサンプル コードでは、PHPUnit を使用して HttpRequest::get() メソッドをテストし、モック オブジェクトを通じて依存関係のモック バージョンを作成し、モックの戻り値を設定し、サービス メソッドの呼び出しを検証する方法を示します。

如何使用 PHP 进行单元测试?

#PHP を使用した単体テスト

単体テストは、ソフトウェアの最小の独立したコンポーネント (ユニット) を検査するソフトウェア テスト手法です。 - 関数、メソッド、またはクラス。

PHPUnit のインストール

PHPUnit は、人気のある PHP 単体テスト フレームワークです。これをインストールするには、次の Composer コマンドを実行します。

composer require --dev phpunit/phpunit
ログイン後にコピー

テスト クラスの作成

各テスト クラスの名前には「Test」接尾辞が付けられ、

PHPUnit から拡張されます。 \Framework\TestCase クラス:

class SomeClassTest extends PHPUnit\Framework\TestCase
{
    // ...
}
ログイン後にコピー

テスト メソッドの記述

各テスト メソッドは「test」で始まり、その後にテスト対象の関数が続きます。 名前:

public function testAddNumbers()
{
    $result = someFunction(1, 2);
    $this->assertEquals(3, $result);
}
ログイン後にコピー

assertEquals メソッドは 2 つの値が等しいことをアサートします。

テストを実行する

テストを実行するには、PHPUnit コマンドを使用します:

vendor/bin/phpunit
ログイン後にコピー

実用的なケース: テスト文字列ツール クラス

文字列の最初の文字を大文字にする

ucfirst メソッドを提供する StringUtils というヘルパー クラスについて考えてみましょう。このメソッドをテストする単体テストを作成できます:

StringUtilsTest.php

class StringUtilsTest extends PHPUnit\Framework\TestCase
{
    public function testUcfirst()
    {
        $string = 'hello world';
        $result = StringUtils::ucfirst($string);
        $this->assertEquals('Hello world', $result);
    }
}
ログイン後にコピー

モックの使用

モックを使用すると、次のことが可能になります。外部依存関係の動作をモックして、単体テストでコードを分離します。たとえば、データベースに依存するクラスをテストしている場合、モックを使用して、実際にクエリを実行せずにデータベースをシミュレートできます。

サンプル コード: PHPUnit を使用した getRequest() メソッドのテスト

class HttpServiceTest extends TestCase
{
    public function testGetRequest()
    {
        $request = $this->getMockBuilder(HttpRequest::class)
            ->onlyMethods(['get'])
            ->getMock();

        $request->method('get')
            ->with('name')
            ->willReturn('John Doe');

        $service = new HttpService($request);

        $this->assertEquals('John Doe', $service->getRequest('name'));
    }
}
ログイン後にコピー

この例では、モック オブジェクトを使用して依存関係のモック バージョンを作成する方法、およびその方法を示します。モック戻り値を設定する、およびサービスのメソッド呼び出しを検証する方法。

以上がPHP で単体テストを行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート