ホームページ > バックエンド開発 > PHPチュートリアル > phpmaster | Phpunitを始めましょう

phpmaster | Phpunitを始めましょう

Christopher Nolan
リリース: 2025-03-02 08:33:15
オリジナル
481 人が閲覧しました

phpmaster | Getting Started with PHPUnit

このチュートリアルは時代遅れです。 PHPunitの現在の紹介については、最近公開された更新ガイドを参照してください。


Webサイトのテストの自動化は、効率的な開発には不可欠です。 ユニットテストはこのプロセスを合理化し、コードの更新によって導入されたバグを防ぎます。この記事では、Phpunitの基本的な理解を提供し、最初のユニットテストをご紹介します。

開始する前に、phpunitがインストールされていることを確認してください。 指示は、

> https://www.php.cn/link/991c0955da231335e4864d3389698fd5

最初のテストの作成

ユーザーを表す単純なPHPクラスから始めます:

ユーザーの挨拶をテストするには、テストクラスを作成します

。 テストクラス名は通常、テスト対象のクラスを反映しています。 テストクラスには、テスト済みのクラスとPHPunitのオートローディングが含まれます:
<?php
class User {
    protected $name;

    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }

    public function talk() {
        return "Hello world!";
    }
}
ログイン後にコピー

UserTest各テストは、このクラス内のメソッドです。

を使用して、挨拶を確認します:
<?php
require_once "PHPUnit/Autoload.php";
require_once "User.php";

class UserTest extends PHPUnit_Framework_TestCase {
}
ログイン後にコピー

assertEquals()

phpunitフィクスチャーの使用
<?php
...
class UserTest extends PHPUnit_Framework_TestCase {
    public function testTalk() {
        $user = new User();
        $expected = "Hello world!";
        $actual = $user->talk();
        $this->assertEquals($expected, $actual);
    }
}
ログイン後にコピー

各テスト方法でオブジェクトを繰り返しセットアップすることは非効率的です。 phpunitフィクスチャーは、各テストの前に状態を確立し、その後リセットします。 ユーザーを作成して初期化するためにオーバーライドします:

setUp()各テストの後にユーザーを設定します:

<?php
...
class UserTest extends PHPUnit_Framework_TestCase {
    protected $user;

    protected function setUp() {
        $this->user = new User();
        $this->user->setName("Tom");
    }
}
ログイン後にコピー

さて、tearDown()を単純化します:

<?php
...
class UserTest extends PHPUnit_Framework_TestCase {
    ...
    protected function tearDown() {
        unset($this->user);
    }
}
ログイン後にコピー

testTalk()テストを実行してください

<?php
...
class UserTest extends PHPUnit_Framework_TestCase {
    ...
    public function testTalk() {
        $expected = "Hello world!";
        $actual = $this->user->talk();
        $this->assertEquals($expected, $actual);
    }
}
ログイン後にコピー

を使用して端末からテストを実行します。 a "。"テストが成功したことを示し、「F」は失敗を意味します。 他の文字は、エラー、スキップテスト、または不完全なテストを表します

テストの障害の処理

phpunit

「HelloWorld!」の代わりに「blubb」を返すように

クラスを変更するテストが失敗し、詳細なエラー情報が提供されます。 結論

Userこの紹介は、phpunitの単純さを示しています。 その能力をさらに調べてください。実験し、エラーから学び、高度な技術とアサーション方法についてはPHPunitマニュアルを参照してください。 提供されたコード(GitHubで利用可能)は、依存関係管理に作曲家を使用します。

ステートメントは

を呼び出す必要があります。 Archipoch / ShutterStock

を介した画像

require

以上がphpmaster | Phpunitを始めましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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