Collection of additional matchers for phpspec
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
spec
src
.codecov.yml
.editorconfig
.gitignore
.travis.yml
LICENSE
composer.json
phpspec-coverage.yml
phpspec.yml
readme.md

readme.md

    Build Status codecov StyleCI

Collection of phpspec Matchers

This package contains a collection of additional phpspec matchers.

Installation

You can install the package via composer

composer require karriere/phpspec-matchers

To be able to use the matchers you need to add the following definition to your phpspec.yml

extensions:
    Karriere\PhpSpecMatchers\Extension: ~

Matcher Usage

All custom matchers in this package implement the positive and the negative case. For example you can use:

$this->method()->shouldBeAnyOf(1, 2, 3);

and also

$this->method()->shouldNotBeAnyOf(1, 2, 3);

Matchers

General Matchers

Json Matchers

General Matchers

beAnyOf

This matcher allows to check the return value against a set of values. Assume you have some sort of random mechanism to get an integer between 2 and 4. The you can use the shouldBeAnyOf matcher:

$this->method()->shouldBeAnyOf(2, 3, 4);

beSomeOf

This matcher allows to check if the returned array values are contained in a set of values.

// $this->method() may return [1, 2, 3]
$this->method()->shouldBeSomeOf(1, 2, 3, 4, 5);

rangeBetween

This matcher allows to check if the given return value is inside a numeric range.

$this->method()->shouldRangeBetween(2, 4);
$this->method()->shouldRangeBetween(0.1, 0.9);

beEmpty

This matcher allows to check if the given return value is empty. The implementation uses the empty implementation.

$this->method()->shouldBeEmpty();

beNull

This matcher allows to check if the given return value is null. The implementation uses the is_null implementation.

$this->method()->shouldBeNull();

beLessThan

This matcher allows to check if the given return value is less than a specified value.

$this->method()->shouldBeLessThan(10);

beGreaterThan

This matcher allows to check if the given return value is greater than a specified value.

$this->method()->shouldBeGreaterThan(10);

Json Matchers

beJson

This matcher checks if the return value is a valid json string

$this->method()->shouldBeJson();

haveJsonKey

This matcher checks if the returned json string contains a json key.

$this->method()->shouldHaveJsonKey('key');

To match against subkey you can use the dot notation. For example let's assume the following json structure

{
  "key": {
    "subkey": "value"
  }
}

The key for this check is 'key.subkey'

$this->method()->shouldHaveJsonKey('key.subkey');

haveJsonKeyWithValue

This matcher checks if the returned json string contains the json key and the desired value. The dot syntax for subkeys can also be applied.

$this->method()->shouldHaveJsonKeyWithValue('key.subkey', 'value');

License

Apache License 2.0 Please see LICENSE for more information.