peridot-php / peridot-prophecy-plugin
将预言模拟注入到您的 Peridot 测试中
1.1.0
2014-11-25 17:54 UTC
Requires
- peridot-php/peridot: ~1.0
- phpspec/prophecy: ~1.0
This package is not auto-updated.
Last update: 2024-09-10 03:09:59 UTC
README
使用 Peridot 与惊人的模拟框架 Prophecy
##使用方法
我们建议您通过 composer 将此插件安装到项目中
$ composer require --dev peridot-php/peridot-prophecy-plugin:~1.0
您可以通过您的 peridot.php 文件注册插件。
<?php use Evenement\EventEmitterInterface; use Peridot\Plugin\Prophecy\ProphecyPlugin; return function(EventEmitterInterface $emitter) { $plugin = new ProphecyPlugin($emitter); };
注册此插件将为所有测试添加一个 ProphecyScope
作为子作用域。这将在您的所有测试中允许您获取预言对象。
<?php describe('Bird', function() { it('should fly', function() { $mock = $this->getProphet()->prophesize('Bird'); //do stuff with the mock }); });
###自动注入模拟
如果测试套件的描述是现有类,预言插件将自动将一个模拟类的 $subject
实例变量注入到测试中。
describe('Vendor\Namespace\Klass', function() { it('should have a subject', function() { $instance = $this->subject->reveal(); assert($instance instanceof Klass, 'should be instance of Klass'); }); });
###按测试使用作用域
像任何其他 Peridot 作用域 一样,您可以在测试级别或套件级别混合使用此插件提供的 ProphecyScope
。
<?php use Peridot\Plugin\Prophecy\ProphecyScope; describe('Bird', function() { //here we manually mixin the http kernel scope $scope = new ProphecyScope(); $this->peridotAddChildScope($scope); it('should fly', function() { $mock = $this->getProphet()->prophesize('Bird'); //do stuff with the mock }); });
##示例规范
要测试使用该插件的示例,请运行以下命令
$ vendor/bin/peridot example/bird.spec.php
##运行插件测试
$ vendor/bin/peridot specs/