aeris/spy

Test spies

Maintainers

👁 eschwartz

Package info

github.com/aerisweather/Spy

pkg:composer/aeris/spy

Statistics

Installs: 3 943

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2015-08-13 17:14 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD 64559ef7d92f5106152421cf7112422e583fa98a

  • Edan Schwartz <eschwartz.woop@aerisweather.net>

This package is not auto-updated.

Last update: 2026-06-24 17:54:59 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'