Una biblioteca que hace que las pruebas unitarias de código basado en bases de datos en PHP sean muy sencillas. Simule la clase PDO nativa, defina resultados de consultas e inspeccione declaraciones ejecutadas.
"[En la extinción de incendios] un aparato de manguera que se utiliza para dividir una línea en dos descargas. A menudo se utiliza una estrella con compuerta para permitir o impedir el flujo de agua a través de las dos descargas separadas". - https://en.wikipedia.org/wiki/Glossary_of_firefighting_equipment#Wye
Wye está registrado con Packagist y se puede instalar con Composer. Ejecute lo siguiente en la línea de comando:
composer require --dev stratedge/wye
Una vez que Wye se haya incluido en su proyecto, solo asegúrese de requerir el cargador automático 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!
ESPERA, HAY MÁS
Para obtener una visión mucho más profunda del uso de Wye, consulte la documentación extensa, especialmente la sección sobre Uso básico.
La documentación completa y actualizada está disponible en la Wiki.
Algunos de los temas principales discutidos incluyen: Introducción, Definición de resultados, Inspección de información de ejecución e Inspección de enlaces.
La lista de mejoras e implementaciones está disponible en la página Todo y hoja de ruta de la wiki.
Si encuentra un problema en Wye y cree que puede solucionarlo, hágalo por todos los medios. Las solicitudes de extracción se aceptan con gusto. Si no tiene el tiempo o la energía para solucionarlo, registre el problema con el mayor detalle posible para que pueda echarle un vistazo.
Los problemas se pueden registrar en el rastreador de problemas de Github.
Wye se basa en una idea que vi implementada por primera vez por mi amigo y colega Josh.