ホームページ バックエンド開発 PHPチュートリアル PHP単体テストの方法と例 phpunit

PHP単体テストの方法と例 phpunit

May 17, 2018 am 11:02 AM
php phpunit

この記事では主にphp単体テストphpunitを紹介し、php単体テストphpunitの基本的な概念、使用方法、関連する注意事項をサンプルの形式で分析します。必要な友人は参考にしてください

詳細は次のとおりです。

単体テストとは何ですか?:

は、関数、メソッドなどのソフトウェアの基本ユニットをテストして、その戻り値や動作が期待どおりであるかどうかを確認することを指します。ソフトウェアは実際には非常に複雑です。多くのコンポーネントで構成されており、実行プロセスは一貫しています。ユニット フラグメントをテストするには、実行コンテキスト (またはパラメータ) と実行環境 (オブジェクトをシミュレートするためのパイルなど) を提供し、その動作を監視する必要があります。このため、これを行うためのプログラムを作成する必要があります。プログラム コードはテスト ケースと呼ばれ、テスト対象のプログラム コードを有機的に組み合わせてテスト全体を構成します。プロダクションコードと呼ばれます。ソフトウェア phpunit は、テスト ケースの作成とテストの実施に使用されます。

php単体テスト: phpunit

の公式Webサイトに詳細なチュートリアルがあります。ここでは補足的な内容をいくつか紹介します。

まず、phpunit ソフトウェア自体は PHP 言語によって実装されているということを理解する必要があります。その使用はブラウザーからアクセスするものではありません。

これを理解することが重要です。多くの初心者はここでつまずきます。非常に基本的でシンプルですが、あまり言及されていないようです

公式Webサイトからダウンロードすると、pharファイルが得られます。pharアーカイブファイルの概要については、以前の記事「PHP開発」を参照してください。アーカイブ形式 Phar ファイルの概念と使用法

併せて phpunit の使用法ドキュメントをダウンロードし、中のインストール方法に従ってインストールし、コマンド ラインで次のコマンドを入力します:

phpunit --help
ログイン後にコピー

ヘルプ メッセージが表示された場合、インストールは成功しました。コマンド ラインの現在のディレクトリに yunke .php としてテスト ケースを作成します。内容は次のとおりです:

<?php
use PHPUnit\Framework\TestCase;
class yunkeTest extends TestCase
{
  public function testPushAndPop()
  {
    $stack = [];
    $this->assertEquals(0, count($stack));
    array_push($stack, &#39;foo&#39;);
    $this->assertEquals(&#39;foo&#39;, $stack[count($stack) - 1]);
    $this->assertEquals(1, count($stack));
    $this->assertEquals(&#39;foo&#39;, array_pop($stack));
    $this->assertEquals(0, count($stack));
  }
}
?>
ログイン後にコピー

次に、コマンド ラインに次のコマンドを入力します:

rrree

次の内容が表示されます:

phpunit yunke
ログイン後にコピー

おめでとうございます。単体テストが正常に実行されました。最初の行は作成者情報です (Sebastian Bergmann は署名されるのがとても好きです)

2 行目はで始まりますピリオドは、すべてのテストが正常に合格したことを示します

上記の php コードで何が起こっているのか疑問に思われるかもしれません。

これは単純に配列操作をテストするテスト ケースです。単体テストは通常​​、次の 4 つの手順を実行します。

1. 製品コード クラス Class のテストはクラス ClassTest で記述されます。

2. ClassTest は (通常は)

PHPUnitFrameworkTestCase から継承します。
3. テストはすべて test* という名前のパブリック メソッドです。メソッドのドキュメント コメント ブロック (docblock) で @test アノテーションを使用して、メソッドをテスト メソッドとしてマークすることもできます。 4. テスト メソッド内では、assertEquals() に似たアサーション メソッドを使用して、実際の値と期待される値の一致についてアサーションを行います。
ここでいくつかの場所で混乱するかもしれません: @test 标注将其标记为测试方法。
4. 在测试方法内,类似于 assertEquals()

1. コメント ブロックで使用されるアノテーションは、PHP によってリフレクションを通じて取得され、プログラムは取得した情報をリストされたテスト ケース コードの TestCase に使用できます。上記 クラスはどこから来たのでしょうか?読み込まれていないのでしょうか?

前述の通り、phpunit自体はPHP言語で記述され、pharにパッケージ化されて使用されます。実行時には、まずパッケージ内のスタブファイルが実行されます

上記のYunkeさんの別の記事で紹介されている方法を使用してください。 phar post を使用して phpunit.phar パッケージを抽出して復元するか、phpstorm などの IDE を使用してパッケージを直接開きます

.phar/stub.php にはスタブ コードが表示され、TestCase クラスは必須の「

phpunit yunke」です" スタブ コード内

" このコマンド ライン コードは、最初に phpunit スクリプトを実行し、スタブ ファイルから実行を開始し、次に phpunit によってテスト ケース コードをロードします

プログラムがテストから実行を開始しないことがわかります。これで、TestCase クラスが Bar から来ていることが分かりました

関連する推奨事項:

CentOS 環境に PHPUnit をインストールする方法

phpunit インターフェイスの自動テスト機能の実装

Yaf のインスタンスの詳細な説明フレームワーク PHPUnit 統合テスト方法

以上がPHP単体テストの方法と例 phpunitの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles