Библиотека, которая упрощает модульное тестирование кода, управляемого базой данных, на PHP. Имитируйте собственный класс PDO, определяйте результаты запроса и проверяйте выполненные операторы.
«[При пожаротушении] шланговый прибор, используемый для разделения одной линии на два выпускных отверстия. Часто используется закрытая звездочка, позволяющая или запрещающая поток воды через два отдельных выпускных отверстия». - 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.
Некоторые из основных обсуждаемых тем включают: введение, определение результатов, проверку информации о выполнении и проверку привязок.
Список улучшений и реализаций доступен на странице Todo & Roadmap вики.
Если вы обнаружили проблему в Уай и думаете, что можете ее исправить, обязательно сделайте это. Запросы на вытягивание с радостью принимаются. Если у вас нет времени или сил, чтобы исправить это, пожалуйста, запишите проблему как можно подробнее, чтобы я мог ее рассмотреть.
Проблемы можно регистрировать в системе отслеживания проблем Github.
Wye построен на основе идеи, которую я впервые увидел в реализации моего друга/коллеги Джоша.