検索

この記事では、現代のPHP開発環境のためのPHPunitの近代的な紹介を提供します。 JSONをPHPアレイに変換するシンプルなコマンドラインツールを構築し、その過程で重要なPHPunitの概念を実証します。

Re-Introducing PHPUnit: Getting Started with TDD in PHP

オブジェクト指向PHP(PHP 7以降)に精通していると仮定します。 合理化されたセットアップの場合、PHP 7をプリインストールしてプロセスを簡素化するHomesteadの改善を使用します。 いくつかのコマンドラインの使用法が関係していますが、それを案内してください。

重要な概念:

    phpunit:
  • テストの作成と実行を簡素化し、コード品質とテスト駆動型開発(TDD)を促進するPHPのテストフレームワーク。 テスト駆動型開発(TDD):
  • コードの前にテストが記述され、開発を導き、予想される動作を確保する方法が記載されています。 アサーションは、予想される結果を確認します
  • のセットアップ:作曲家とのプロジェクトの作成、PHPunitの開発依存関係()、の構成とテストスイートとブートストラップの管理を含みます。
  • 最初のテスト:拡張、アサーション(composer require phpunit/phpunit --devphpunit.xmlデータプロバイダー:
  • テストデータをロジックから分離して、テストをきれいに整理します。 テスト方法を変更せずに新しいテストケースを簡単に追加します
  • コードカバレッジ:レポートでは、テストされていないコードを識別し、包括的なテストとアプリケーションの堅牢性を確保します。 PHPUnitFrameworkTestCase assertEquals
  • テスト駆動型開発説明:
  • TDDには、コード自体を書き込む前に
  • がどのように動作するかを定義するためのテストを作成することが含まれます。 アサーション(
など)コードが期待を満たしているかどうかを確認します。 失敗したテストは、コードの変更が必要であることを示します

phpunitの概要:

phpunitは、テストの書き込みと分析を簡素化するためのツール(クラスと実行可能ファイル)を提供します。 コードの品質、カバレッジなどを示すレポートを生成します の例アプリケーション:jsonからphpアレイコンバーター assertEqualsJSONファイルをPHPアレイに変換するコマンドラインツールを作成します。 作曲家のPHP 7環境を想定してください。 Homesteadを使用する場合、assertTruevm(

プロジェクトのセットアップ:

フロントコントローラー(コンバーター/パブリックのindex.php):sshvagrant ssh

  1. phpunit.xml:

    cd Code
    git clone https://github.com/php-pds/skeleton converter
    cd converter
    composer require phpunit/phpunit --dev
    rm bin/* src/* docs/* tests/*
  2. tests/autoload.php:

    cd Code
    git clone https://github.com/php-pds/skeleton converter
    cd converter
    composer require phpunit/phpunit --dev
    rm bin/* src/* docs/* tests/*
  3. composer.json(更新):(テンプレート値をプロジェクトの詳細に置き換えます)

    <?php echo "Hello world";
  4. runcomposer dump-autoload

  5. 最初のテスト(Tests/sitepoint/converter/convertertest.php):

    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit bootstrap="tests/autoload.php">
        <testsuites>
            <testsuite name="converter">
                <directory suffix="Test.php">tests</directory>
            </testsuite>
        </testsuites>
    </phpunit>
  6. テストを実行する(php vendor/bin/phpunit(最初に障害を予想してください)

  7. コンバータークラス(SRC/SitePoint/converter/converter.php)を実装:

    <?php
    require_once __DIR__ . '/../vendor/autoload.php';
  8. 再実行テスト

    チュートリアルの詳細の残りの詳細は、よりクリーンなコードにデータプロバイダーを使用し、Xdebugを使用したコードカバレッジレポートのセットアップを追加するテストを追加します。 最後のセクションには、TDDとPHPunitのベストプラクティスをカバーするFAQが含まれます。 完全なコードはgithub(元のテキストで提供されるリンク)で利用できます。

以上が再導入phpunit:PHPのTDDを始めますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

thedifferencebetferencefued fieneunset()andsession_destroy()isthatunset()clearsspecificsessionvariablesはsessionactiveであり、ssession_destroy()ターミナテンテンセッション

負荷分散のコンテキストでの粘着性セッション(セッションアフィニティ)とは何ですか?負荷分散のコンテキストでの粘着性セッション(セッションアフィニティ)とは何ですか?May 04, 2025 am 12:16 AM

StickysionsionsureuserRequestsoredtotheSameserverforsessiondataconsistency.1)Sessionidedificationisionidificationsisignivisionsignsignsuserstoserversusing okiesorurlmodifications.2)CondingRoutingDirectSSubSubSubsEntRequestStotheSameserver.3)LoadBalancingDistributeNewuser

PHPで利用可能なさまざまなセッション保存ハンドラーは何ですか?PHPで利用可能なさまざまなセッション保存ハンドラーは何ですか?May 04, 2025 am 12:14 AM

phpoffersvarioussionsionsavehandlers:1)ファイル:デフォルト、simplebutmaybottleneckonhigh-trafficsites.2)memcached:high-performance、yealforspeed-criticalapplications.3)redis:similartomcached、witordededpersistence.4)データベースの提供

PHPでのセッションとは何ですか?なぜそれらが使用されているのですか?PHPでのセッションとは何ですか?なぜそれらが使用されているのですか?May 04, 2025 am 12:12 AM

PHPでのセッションは、サーバー側のユーザーデータを保存して、複数のリクエスト間で状態を維持するメカニズムです。具体的には、1)セッションはsession_start()関数によって開始され、データは保存され、$ _Sessionスーパーグローバルアレイを読みます。 2)セッションデータはデフォルトでサーバーの一時ファイルに保存されますが、データベースまたはメモリストレージを介して最適化できます。 3)セッションを使用して、ユーザーのログインステータス追跡とショッピングカート管理機能を実現できます。 4)セッションの安全な送信とパフォーマンスの最適化に注意を払い、アプリケーションのセキュリティと効率を確保します。

PHPセッションのライフサイクルを説明してください。PHPセッションのライフサイクルを説明してください。May 04, 2025 am 12:04 AM

phpssionsStartWithsession_start()、figenateAuniqueidandcreateSaServerfile; theySistacrossRequestsandcanbemanbemanBeithsession_destroy()

絶対的なセッションタイムアウトとアイドルセッションのタイムアウトの違いは何ですか?絶対的なセッションタイムアウトとアイドルセッションのタイムアウトの違いは何ですか?May 03, 2025 am 12:21 AM

絶対セッションのタイムアウトはセッションの作成時に開始され、アイドルセッションタイムアウトはユーザーの操作なしに開始されます。絶対セッションタイムアウトは、金融アプリケーションなど、セッションライフサイクルの厳格な制御が必要なシナリオに適しています。アイドルセッションタイムアウトは、ソーシャルメディアなど、ユーザーが長い間セッションをアクティブに保つことを望んでいるアプリケーションに適しています。

セッションがサーバーで機能していない場合、どのような措置を講じますか?セッションがサーバーで機能していない場合、どのような措置を講じますか?May 03, 2025 am 12:19 AM

サーバーセッションの障害は、手順に従って解決できます。1。セッションが正しく設定されていることを確認するために、サーバーの構成を確認します。 2.クライアントCookieを確認し、ブラウザがそれをサポートしていることを確認し、正しく送信します。 3. Redisなどのセッションストレージサービスを確認して、それらが正常に動作していることを確認します。 4.アプリケーションコードを確認して、正しいセッションロジックを確認します。これらの手順を通じて、会話の問題を効果的に診断および修復し、ユーザーエクスペリエンスを改善することができます。

session_start()関数の重要性は何ですか?session_start()関数の重要性は何ですか?May 03, 2025 am 12:18 AM

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。