PHP でのデータベース駆動コードの単体テストを簡単に行うライブラリ。ネイティブ PDO クラスをモックし、クエリ結果を定義し、実行されたステートメントを検査します。
「[消火活動において] 1 つのラインを 2 つの排出口に分割するために使用されるホース器具。多くの場合、2 つの別々の排出口を通る水の流れを許可または禁止するために、ゲート付き Y 字形が使用されます。」 - https://en.wikipedia.org/wiki/Glossary_of_firefighting_equipment#Wye
Wye は Packagist に登録されており、Composer でインストールできます。コマンドラインで次を実行します。
composer require --dev stratedge/wye
Wye をプロジェクトに組み込んだら、必ず Composer のオートローダーを要求してください。
require_once ' vendor/autoload.php ' ;
use Stratedge Wye Wye ;
//In test setup
//-------------
//Reset the Wye to its clean state
Wye::reset()
//Create a Wye PDO object
$ pdo = Wye:: makePDO ();
//Inject PDO into database layer
Database:: setConnection ( $ pdo );
//In test
//-------
//Create a Result object
$ result = Wye:: makeResult ();
//Add a row or two to return
$ result -> addRow ([ ' type ' => ' Pumper ' , ' apparatus ' => ' Engine 1 ' ]);
//Attach Result to Wye to be served when a query is executed
$ result -> attach ();
//Run code to test
$ class_to_test -> doSomething ();
//Inspect execution
$ stmt = Wye:: getStatementAtIndex ( 0 );
$ this -> assertStringStartsWith ( ' SELECT ' , $ stmt -> getStatement ());
$ this ->assertCount( 2 , count ( $ stmt -> getBindings ());
$ this -> assertSame ( ' id ' , $ stmt -> getBindings ()-> first ()-> getParameter ());
$ this -> assertSame ( 1 , Wye:: getNumQueries ());
//and more!
待ってください、まだあります
Wye の使用法をさらに詳しく調べるには、広範なドキュメント、特に基本的な使用法に関するセクションを確認してください。
完全かつ最新のドキュメントは Wiki から入手できます。
主なトピックとしては、「概要」、「結果の定義」、「実行情報の検査」、「バインディングの検査」などがあります。
機能強化と実装のリストは、Wiki の Todo & Roadmap ページで入手できます。
Wye で問題が見つかり、修正できると思われる場合は、ぜひ修正してください。プルリクエストは喜んで受け付けます。問題を修正する時間やエネルギーがない場合は、私が確認できるよう、できるだけ詳細に問題を記録してください。
問題は Github 問題トラッカーに記録できます。
Wye は、友人/同僚の Josh が初めて実装したのを見たアイデアに基づいて構築されています。