Skip to content
This repository has been archived by the owner on Jan 27, 2021. It is now read-only.

karriereat/phpspec-matchers

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    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.