Une bibliothèque qui facilite les tests unitaires de code basé sur une base de données en PHP. Moquez la classe PDO native, définissez les résultats de la requête et inspectez les instructions exécutées.
"[Dans la lutte contre les incendies, un] appareil à tuyau utilisé pour diviser une conduite en deux décharges. Souvent, une étoile à vanne est utilisée pour autoriser et interdire l'écoulement de l'eau à travers les deux décharges séparées." - https://en.wikipedia.org/wiki/Glossary_of_firefighting_equipment#Wye
Wye est enregistré auprès de Packagist et peut être installé avec Composer. Exécutez ce qui suit sur la ligne de commande :
composer require --dev stratedge/wye
Une fois que Wye a été inclus dans votre projet, assurez-vous simplement d'avoir besoin du chargeur automatique de 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!
ATTENDEZ, IL Y A PLUS
Pour un aperçu beaucoup plus approfondi de l'utilisation de Wye, consultez la documentation complète, en particulier la section sur l'utilisation de base.
Une documentation complète et à jour est disponible sur le Wiki.
Certains des principaux sujets abordés incluent : une introduction, la définition des résultats, l'inspection des informations d'exécution et l'inspection des liaisons.
La liste des améliorations et des implémentations est disponible sur la page Todo & Roadmap du wiki.
Si vous rencontrez un problème à Wye et que vous pensez pouvoir le résoudre, n'hésitez pas à le faire. Les demandes de tirage sont acceptées avec plaisir. Si vous n'avez ni le temps ni l'énergie de le résoudre, veuillez enregistrer le problème avec autant de détails que possible afin que je puisse y jeter un œil.
Les problèmes peuvent être enregistrés sur le suivi des problèmes Github.
Wye est construit sur une idée que j'ai vue pour la première fois mise en œuvre par mon ami/collègue Josh.