ホームページ > バックエンド開発 > PHPチュートリアル > PHP 単体テストとエラー処理の実践

PHP 単体テストとエラー処理の実践

王林
リリース: 2024-05-07 08:15:02
オリジナル
412 人が閲覧しました

単体テストでは、PHPUnit フレームワークを通じてコードを簡単かつ迅速にテストでき、エラー処理では例外を使用してランタイム エラーをキャッチして処理します。例外処理では try...catch ステートメントを使用して例外をキャプチャしますが、エラー レポートでは error_reporting() を使用してエラー タイプを設定し、trigger_error() を使用してエラーをアクティブにトリガーします。

PHP 单元测试与错误处理的实践

#PHP 単体テストとエラー処理の実践

はじめに

単体テストとエラー処理はソフトウェア開発の重要な側面です。 PHP は、堅牢で保守可能なコードを作成するのに役立つツールとベスト プラクティスの包括的なセットを提供します。この記事では、PHP 単体テストとエラー処理を効果的に使用する方法について説明します。

単体テスト

PHPUnit の概要

PHPUnit は、PHP の主要な単体テスト フレームワークです。コードを迅速かつ簡単にテストできるように、さまざまなアサーション、モック、スタブが提供されます。

実際的なケース

単純な計算関数である次のコード スニペットを考えてみましょう。

function calculate($a, $b, $operation) {
    switch ($operation) {
        case 'add':
            return $a + $b;
        case 'subtract':
            return $a - $b;
        default:
            throw new InvalidArgumentException('Invalid operation');
    }
}
ログイン後にコピー

PHPUnit を使用して単体テストを作成できます。この関数を次のようにテストします。

use PHPUnit\Framework\TestCase;

class CalculatorTest extends TestCase {

    public function testAdd() {
        $this->assertEquals(5, calculate(2, 3, 'add'));
    }

    public function testSubtract() {
        $this->assertEquals(1, calculate(3, 2, 'subtract'));
    }

    public function testInvalidOperation() {
        $this->expectException(InvalidArgumentException::class);
        calculate(1, 2, 'multiply');
    }
}
ログイン後にコピー

エラー処理

例外処理

PHP の例外が使用されます。処理用の特別なオブジェクトです。実行時エラー。次のように

try...catch ステートメントを使用して例外をキャッチして処理できます。

try {
    // 代码可能会抛出异常
} catch (Exception $e) {
    // 捕获异常并进行处理
}
ログイン後にコピー

エラー報告

PHP エラー報告は次の目的で使用されます。エラー メッセージと警告をコードに記録します。

error_reporting() 関数を使用して、報告されるエラーの種類を構成したり、trigger_error() 関数を使用してエラーをアクティブにトリガーしたりできます。

実際的なケース

存在しないファイルを開こうとする次のコード スニペットを考えてみましょう:

$handle = fopen('nonexistent.txt', 'r');
ログイン後にコピー

エラー処理を使用すると、次のことができます。キャッチして処理する このエラーは次のようになります:

set_error_handler(function($errno, $errstr, $errfile, $errline, $errcontext) {
    echo 'Error: ' . $errstr . "\n";
});

try {
    $handle = fopen('nonexistent.txt', 'r');
} catch (Exception $e) {
    // 该异常在错误处理程序中被捕获,因此不会执行
}
ログイン後にコピー

以上がPHP 単体テストとエラー処理の実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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