Add prophecy to your peridot tests and auto inject mocks
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Peridot Prophecy Plugin

Build Status HHVM Status

Use Peridot with the amazing mocking framework Prophecy


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.

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.

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.

use Peridot\Plugin\Prophecy\ProphecyScope;

describe('Bird', function() {
    //here we manually mixin the http kernel scope
    $scope = new ProphecyScope();

    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/