wye
v0.8.0
一个库,使 PHP 中数据库驱动代码的单元测试变得轻而易举。模拟本机 PDO 类、定义查询结果并检查执行的语句。
“[在消防中]软管装置用于将一条管线分成两个排放口。通常使用门控 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 实施的一个想法之上的。