karriere/phpspec-matchers

This package is abandoned and no longer maintained. No replacement package was suggested.

phpspec extension with a collection of additional matchers

Installs: 50 522

Dependents: 4

Suggesters: 0

Security: 0

Stars: 31

Watchers: 13

Forks: 5

Open Issues: 1

Type:phpspec-extension

v3.0.0 2019-11-18 10:42 UTC

This package is auto-updated.

Last update: 2021-01-27 12:50:51 UTC


README

687474703a2f2f7777772e6b617272696572652e61742f696d616765732f6c61796f75742f6b61746c6f676f2e737667     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.