aeris/spy

Test spies

1.1.0 2015-08-13 17:14 UTC

This package is not auto-updated.

Last update: 2024-05-01 07:39:45 UTC


README

Test spies for PHP.

Install

composer require aeris/spy

Overview

An Aeris\Spy allows you to mock callables in PHP. A Spy wraps around a Mockery\ object, which means that you can use Mockery expectations with your Aeris Spies.

For example:

$spy = new Spy();

$spy(5);
$spy(6);
$spy(7);

$spy->shouldHaveBeenCalled()
  ->twice()
  ->with(\Mockery::on(function($arg) {
    return $arg > 5;
  )))

API

shouldHaveBeenCalled() / shouldNotHaveBeenCalled()

$spy = new Spy();

$spy();

$spy->shouldHaveBeenCalled();  // Passes (no exception)
$spy->shouldNotHaveBeenCalled(); // Failed (throws \Mockery\Exception\InvalidCountException)

andReturn($val)

$spy = new Spy();
$spy->andReturn('foo');

$spy();  // 'foo'

andReturnUsing

$spy = new Spy()
$spy->andReturnUsing(function($str) {
  strtoupper($str);
});

$spy('foo');  // 'FOO'

Spy::returns($val);

Creates a spy which returns a value. Short-hand for creating a spy, then calling andReturn.

$spy = Spy::returns('foo');

$spy(); 	// 'foo'

Spy::returnsUsing($callable);

Creates a spy which returns a value via a callable. Short-hand for creating a spy, then calling andReturnUsing.

$spy = Spy::returnsUsing(function($str) {
  strtoupper($str);
});

$spy('foo'); 	// 'FOO'