这是一个库,可以让PHP中数据库驱动代码的单元测试变得非常简单。模拟原生PDO类,定义查询结果,并检查执行的语句。

v0.8.0 2018-02-04 03:32 UTC

This package is auto-updated.

Last update: 2024-09-20 16:41:18 UTC


README

Build Status Latest Stable Version Total Downloads License

这是一个库,可以让PHP中数据库驱动代码的单元测试变得非常简单。模拟原生PDO类,定义查询结果,并检查执行的语句。

"[在消防中使用的]一种用于将一条管线分成两条排放的管件。通常使用带门的星形管件来允许或禁止通过两条单独的排放水。" - https://en.wikipedia.org/wiki/Glossary_of_firefighting_equipment#Wye

安装

星形已在 Packagist 上注册,并可以使用 Composer 安装。在命令行中运行以下命令

composer require --dev stratedge/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 中有问题,并且你认为你可以修复它,请务必这样做。拉取请求受到欢迎。如果你没有时间或精力修复它,请尽可能详细地记录问题,以便我可以查看。

问题可以在Github问题跟踪器上记录。

致谢

星形是基于我的朋友/同事Josh最初实施的想法构建的。