Eine Bibliothek, die Unit-Tests von datenbankgesteuertem Code in PHP zum Kinderspiel macht. Verspotten Sie die native PDO-Klasse, definieren Sie Abfrageergebnisse und überprüfen Sie ausgeführte Anweisungen.
„[Bei der Brandbekämpfung ein] Schlauchgerät, das zur Aufteilung einer Leitung in zwei Abflüsse verwendet wird. Oft wird ein abgeschirmtes Y-Stück verwendet, um den Wasserfluss durch die beiden separaten Abflüsse zu ermöglichen oder zu verhindern.“ - https://en.wikipedia.org/wiki/Glossary_of_firefighting_equipment#Wye
Wye ist bei Packagist registriert und kann mit Composer installiert werden. Führen Sie Folgendes in der Befehlszeile aus:
composer require --dev stratedge/wye
Sobald Wye in Ihr Projekt eingebunden wurde, stellen Sie einfach sicher, dass Sie den Autoloader von Composer benötigen:
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!
WARTEN SIE, ES GIBT MEHR
Weitere Informationen zur Verwendung von Wye finden Sie in der ausführlichen Dokumentation, insbesondere im Abschnitt zur grundlegenden Verwendung.
Eine vollständige und aktuelle Dokumentation finden Sie im Wiki.
Zu den Hauptthemen, die besprochen werden, gehören: Eine Einführung, Definieren von Ergebnissen, Überprüfen von Ausführungsinformationen und Überprüfen von Bindungen.
Eine Liste der Verbesserungen und Implementierungen ist auf der Todo & Roadmap-Seite des Wikis verfügbar.
Wenn Sie ein Problem in Wye finden und glauben, dass Sie es beheben können, tun Sie dies auf jeden Fall. Pull-Requests werden gerne angenommen. Wenn Sie nicht die Zeit oder Energie haben, das Problem zu beheben, protokollieren Sie das Problem bitte so detailliert wie möglich, damit ich es mir ansehen kann.
Probleme können im Github-Issue-Tracker protokolliert werden.
Wye basiert auf einer Idee, die ich zum ersten Mal von meinem Freund/Kollegen Josh umgesetzt sah.