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

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

王林
王林オリジナル
2023-05-12 08:28:352090ブラウズ

Web 開発では、PHP は人気のある言語であるため、PHP の単体テストは誰にとっても必須のスキルです。この記事では、PHP単体テストとは何か、PHP単体テストの実施方法について紹介します。

1. PHP 単体テストとは何ですか?

PHP 単体テストとは、コード ユニットとも呼ばれる、PHP アプリケーションの最小コンポーネントをテストすることを指します。これらのコード単位は、メソッド、クラス、またはクラスのセットにすることができます。 PHP 単体テストは、コードの各単位が期待どおりに動作し、他の単位と正しく動作することを確認するように設計されています。

PHP には、静的テストと動的テストという 2 つの主なタイプの単体テストがあります。

静的テストとは、PHP コード分析ツールを使用して、コード内でテスト ケースを実行せずにコードをテストすることを指します。静的テストでは、未定義の関数またはメソッド呼び出しなどの可能性のあるエラーを検出できます。最も人気のある PHP 静的テスト ツールは、PHPStan と PHPMD です。

動的テストとは、コード内でテスト ケースを定義し、これらのテスト ケースをテスト環境で実行することを指します。動的テストは、ハンドルされない例外やロジック エラーなど、コード内のエラーを検出するのに役立ちます。人気のある PHP 動的テスト ツールには、PHPUnit や SimpleTest などがあります。

2. PHP 単体テストを実施するにはどうすればよいですか?

  1. PHPUnit のインストール

PHPUnit は、PHP で最も人気のあるテスト フレームワークの 1 つです。まず、PHPUnit をインストールする必要があります。PHPUnit をインストールするには、PHP パッケージ マネージャー Composer を使用できます。次のコマンドを実行して PHPUnit をインストールします。

composer require phpunit/phpunit --dev
  1. テスト ファイルの作成

「CalculatorTest.php」という名前のファイルを作成し、このファイルにテスト ケースを書き込みます。たとえば、「Calculator」という名前のクラスの「add」メソッドをテストできます。

<?php
use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase {
  public function testAdd() {
    include 'Calculator.php';       //包含要测试的类

    $calculator = new Calculator();

    $result = $calculator->add(2, 3);

    $this->assertEquals(5, $result);
  }
}
?>

この例では、PHPUnit の「TestCase」クラスを使用します。これは、次のような多くの便利なアサーション メソッドを提供します。 「assertEquals」メソッドは、2つの値が等しいかどうかをアサートするために使用されます。

  1. テストの実行

テスト ファイルを保存した後、ターミナルでプロジェクト ディレクトリに切り替え、次のコマンドを実行してテストを実行します:

./vendor/bin/phpunit CalculatorTest.php

これにより、「CalculatorTest.php」ファイル内のすべてのテスト ケースが実行され、テスト結果が表示されます。すべてのテスト ケースが成功すると、成功メッセージが表示されます。

  1. さらにテスト ケースを作成する

通常、考えられるすべての状況をカバーするには複数のテスト ケースを作成する必要があります。たとえば、「subtract」メソッドをテストするテスト ケースを作成できます。

public function testSubtract() {
  include 'Calculator.php';

  $calculator = new Calculator();

  $result = $calculator->subtract(5, 3);

  $this->assertEquals(2, $result);
}

この例では、「subtract」メソッドをテストし、「assertEquals」を使用して結果が「2」に等しいかどうかをアサートします。 " 方法。

  1. データ プロバイダーの使用

PHP では、データ プロバイダーを使用して複数のテスト ケースを反復できます。データプロバイダーは、複数のデータセットを返すメソッドです。 「dataProvider」アノテーションを使用して、データプロバイダーをテストケースに関連付けることができます。

たとえば、「multiply」メソッドをテストするデータ プロバイダーを作成できます。

public function multiplicationProvider() {
    return [
      [0, 0, 0],
      [1, 0, 0],
      [0, 1, 0],
      [2, 2, 4],
      [1, -1, -1],
      [-1, -1, 1],
    ];
}

/**
 * @dataProvider multiplicationProvider
 */
public function testMultiply($a, $b, $result) {
    include 'Calculator.php';

    $calculator = new Calculator();

    $this->assertEquals($calculator->multiply($a, $b), $result);
}

この例では、複数のデータ セットを返す「multiplicationProvider」という名前のデータ プロバイダーを作成します。次に、「testMultiply」メソッドの「dataProvider」アノテーションを使用して、データ プロバイダーをテスト ケースに関連付けます。このようにして、テスト実行中に、PHPUnit はデータ プロバイダー内のすべてのデータセットを自動的に反復し、データセットごとにテスト ケースを 1 回実行します。

3. 概要

PHP 単体テストは、PHP 開発者であれば誰でも熟知している必要があるスキルです。この記事では、PHP 単体テストとは何か、単体テストに PHPUnit を使用する方法を紹介しました。また、データ プロバイダーを使用してさらに多くのテスト ケースを作成する方法も学びました。これらの手法を使用すると、堅牢な PHP コードを作成し、コードが期待どおりに動作することを確認できます。

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

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