2017 © Pedro Peláez
 

library phony-peridot

Phony integration for Peridot.

image

eloquent/phony-peridot

Phony integration for Peridot.

  • Friday, September 29, 2017
  • by ezzatron
  • Repository
  • 1 Watchers
  • 5 Stars
  • 588 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 4 % Grown

The README.md

No longer maintained

This package is no longer maintained. See [this statement] for more info., (*1)

[this statement]: https://gist.github.com/ezzatron/713a548735febe3d76f8ca831bc895c0# Phony for PHPUnit, (*2)

Phony for Peridot

![Current version image][version-image], (*3)

Installation

composer require --dev eloquent/phony-peridot

See also

What is Phony for Peridot?

Phony for Peridot is a plugin for the Peridot testing framework that provides auto-wired test dependencies via the Phony mocking framework., (*4)

In other words, if a Peridot test (or suite) requires a mock object, it can be defined to have a parameter with an appropriate type declaration, and it will automatically receive a mock of that type as an argument when run., (*5)

Stubs for callable types, and "empty" values for other type declarations are also supported., (*6)

Plugin installation

The plugin must be installed in the Peridot configuration file:, (*7)

use Eloquent\Phony\Peridot\PeridotPhony;
use Evenement\EventEmitterInterface;

return function (EventEmitterInterface $emitter) {
    PeridotPhony::install($emitter);
};

Dependency injection

Once the plugin is installed, any tests or suites that are defined with parameters will be supplied with matching arguments when run:, (*8)

describe('Phony for Peridot', function () {
    it('Auto-wires test dependencies', function (PDO $db) {
        expect($db)->to->be->an->instanceof('PDO');
    });
});

Injected mock objects

Phony for Peridot supports automatic injection of mock objects. Because Phony doesn't alter the interface of mocked objects, it is necessary to use [on()] to retrieve the mock handle in order to perform stubbing and verification:, (*9)

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');
    });
});

Injected stubs

Phony for Peridot supports automatic injection of stubs for parameters with a callable type declaration:, (*10)

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');
    });
});

Supported types

The following table lists the supported type declarations, and the value supplied for each:, (*11)

Parameter type Supplied value
(none) null
bool false
int 0
float .0
string ''
array []
stdClass (object) []
callable [stub()]
Closure function () {}
Generator (function () {return; yield;})()

When using a type declaration that is not listed above, the supplied value will be a mock of the specified type., (*12)

By necessity, the supplied value will not be wrapped in a mock handle. In order to obtain a handle, simply use [on()]:, (*13)

use function Eloquent\Phony\on;

it('Example mock handle retrieval', function (ClassA $mock) {
    $handle = on($mock);
});

License

For the full copyright and license information, please view the LICENSE file., (*14)

The Versions

29/09 2017

dev-master

9999999-dev https://github.com/eloquent/phony-peridot

Phony integration for Peridot.

  Sources   Download

MIT

The Requires

 

The Development Requires

test mock stub mocking double dummy fake stubbing peridot spy

29/09 2017

2.0.0

2.0.0.0 https://github.com/eloquent/phony-peridot

Phony integration for Peridot.

  Sources   Download

MIT

The Requires

 

The Development Requires

test mock stub mocking double dummy fake stubbing peridot spy

05/06 2017

dev-phpcc-4-5

dev-phpcc-4-5 https://github.com/eloquent/phony-peridot

Phony integration for Peridot.

  Sources   Download

MIT

The Requires

 

The Development Requires

test mock stub mocking double dummy fake stubbing peridot spy

24/04 2017

1.0.0

1.0.0.0 https://github.com/eloquent/phony-peridot

Phony integration for Peridot.

  Sources   Download

MIT

The Requires

 

The Development Requires

test mock stub mocking double dummy fake stubbing peridot spy

24/04 2017

0.2.0

0.2.0.0 https://github.com/eloquent/phony-peridot

Phony integration for Peridot.

  Sources   Download

MIT

The Requires

 

The Development Requires

test mock stub mocking double dummy fake stubbing peridot spy

05/08 2016

0.1.0

0.1.0.0 https://github.com/eloquent/peridot-phony

Phony integration for Peridot.

  Sources   Download

MIT

The Requires

 

The Development Requires

test mock stub mocking double dummy fake stubbing peridot spy