peridot-php/peridot-prophecy-plugin
最新稳定版本:1.1.0
Composer 安装命令:
composer require peridot-php/peridot-prophecy-plugin
包简介
Inject prophecy mocks into your Peridot tests
README 文档
README
Use Peridot with the amazing mocking framework Prophecy
##Usage
We recommend installing this plugin to your project via composer:
$ composer require --dev peridot-php/peridot-prophecy-plugin:~1.0
You can register the plugin via your peridot.php file.
<?php use Evenement\EventEmitterInterface; use Peridot\Plugin\Prophecy\ProphecyPlugin; return function(EventEmitterInterface $emitter) { $plugin = new ProphecyPlugin($emitter); };
Registering this plugin will add a ProphecyScope as a child scope to all of your tests. This will allow you
to get a prophet object in all of your tests.
<?php describe('Bird', function() { it('should fly', function() { $mock = $this->getProphet()->prophesize('Bird'); //do stuff with the mock }); });
###Automatic injection of mock
If a test suite's description is an existing class, the prophecy plugin will automatically inject a $subject instance
variable into your tests that is a mock of the class.
describe('Vendor\Namespace\Klass', function() { it('should have a subject', function() { $instance = $this->subject->reveal(); assert($instance instanceof Klass, 'should be instance of Klass'); }); });
###Using the scope on a test by test basis
Like any other peridot scope, you can mix the ProphecyScope provided by this plugin
on a test by test, or suite by suite basis.
<?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 }); });
##Example specs
To test examples that are using the plugin, run the following:
$ vendor/bin/peridot example/bird.spec.php
##Running plugin tests
$ vendor/bin/peridot specs/
统计信息
- 总下载量: 99.25k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 1
- 依赖项目数: 14
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2014-11-05