eloquent / phony-peridot
此软件包已被废弃,不再维护。未建议替代软件包。
Peridot 的 Phony 集成。
3.0.0
2020-01-06 02:56 UTC
Requires
- php: >=7.2
- eloquent/phony: ^4
- peridot-php/peridot: ^1
Requires (Dev)
- ext-pdo: *
- eloquent/code-style: ^1
- eloquent/phpstan-phony: ^0.7
- errors/exceptions: ^0.2
- friendsofphp/php-cs-fixer: ^2
- peridot-php/leo: ^1
- peridot-php/peridot-code-coverage-reporters: ^3
- phpstan/extension-installer: ^1
- phpstan/phpstan: ^0.12
This package is auto-updated.
Last update: 2023-08-08 04:05:35 UTC
README
不再维护
此软件包不再维护。请参阅[此声明]获取更多信息。
[此声明]: https://gist.github.com/ezzatron/713a548735febe3d76f8ca831bc895c0# Phony for PHPUnit
Peridot 的 Phony
安装
composer require --dev eloquent/phony-peridot
另请参阅
- 阅读文档。
- 阅读Peridot 文档。
- 访问主要 Phony 仓库。
什么是 Peridot 的 Phony?
Peridot 的 Phony 是一个用于 Peridot 测试框架的插件,它通过 Phony 模拟框架提供自动装配的测试依赖项。
换句话说,如果 Peridot 测试(或测试套件)需要一个模拟对象,它可以被定义为具有适当的 类型声明 的参数,并在运行时自动接收该类型的模拟作为参数。
存根 对于 callable
类型,以及其他类型声明的 "空" 值也受到支持。
插件安装
该插件必须安装到 Peridot 配置文件 中
use Eloquent\Phony\Peridot\PeridotPhony; use Evenement\EventEmitterInterface; return function (EventEmitterInterface $emitter) { PeridotPhony::install($emitter); };
依赖注入
一旦安装了插件,任何定义了参数的测试或测试套件在运行时都会提供相应的参数
describe('Phony for Peridot', function () { it('Auto-wires test dependencies', function (PDO $db) { expect($db)->to->be->an->instanceof('PDO'); }); });
注入的模拟对象
Phony for Peridot 支持自动注入 模拟对象。由于 Phony 不会改变被模拟对象的接口,因此需要使用 on()
方法来获取 模拟句柄,以便执行 存根化 和 验证
use function Eloquent\Phony\on; describe('Phony for Peridot', function () { it('Supports stubbing', function (PDO $db) { on($db)->exec->with('DELETE FROM users')->returns(111); expect($db->exec('DELETE FROM users'))->to->equal(111); }); it('Supports verification', function (PDO $db) { $db->exec('DROP TABLE users'); on($db)->exec->calledWith('DROP TABLE users'); }); });
注入的存根
Phony for Peridot 支持自动注入具有 callable
类型声明的参数的 存根
describe('Phony for Peridot', function () { it('Supports callable stubs', function (callable $stub) { $stub->with('a', 'b')->returns('c'); $stub('a', 'b'); $stub->calledWith('a', 'b')->firstCall()->returned('c'); }); });
支持的类型
以下表格列出了支持的类型声明及其对应的值
参数类型 | 提供的值 |
---|---|
(无) | null |
bool |
false |
int |
0 |
float |
.0 |
string |
'' |
array |
[] |
stdClass |
(object) [] |
callable |
stub() |
Closure |
function () {} |
Generator |
(function () {return; yield;})() |
当使用上述未列出的 类型声明 时,提供的值将是指定类型的 模拟。
由于必要,提供的值不会包含 模拟句柄。为了获取句柄,只需使用 on()
use function Eloquent\Phony\on; it('Example mock handle retrieval', function (ClassA $mock) { $handle = on($mock); });
许可证
有关完整的版权和许可证信息,请查看 LICENSE 文件。