, (*1)
Collection of phpspec Matchers
This package contains a collection of additional phpspec matchers., (*2)
Installation
You can install the package via composer, (*3)
composer require karriere/phpspec-matchers
To be able to use the matchers you need to add the following definition to your phpspec.yml
, (*4)
extensions:
Karriere\PhpSpecMatchers\Extension: ~
Matcher Usage
All custom matchers in this package implement the positive and the negative case. For example you can use:, (*5)
$this->method()->shouldBeAnyOf(1, 2, 3);
and also, (*6)
$this->method()->shouldNotBeAnyOf(1, 2, 3);
Matchers
General Matchers
* beAnyOf
* beSomeOf
* rangeBetween
* beEmpty
* beNull
* beLessThan
* beGreaterThan, (*7)
Json Matchers
* beJson
* haveJsonKey
* haveJsonKeyWithValue, (*8)
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:, (*9)
$this->method()->shouldBeAnyOf(2, 3, 4);
beSomeOf
This matcher allows to check if the returned array values are contained in a set of values., (*10)
// $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., (*11)
$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., (*12)
$this->method()->shouldBeEmpty();
beNull
This matcher allows to check if the given return value is null. The implementation uses the is_null implementation., (*13)
$this->method()->shouldBeNull();
beLessThan
This matcher allows to check if the given return value is less than a specified value., (*14)
$this->method()->shouldBeLessThan(10);
beGreaterThan
This matcher allows to check if the given return value is greater than a specified value., (*15)
$this->method()->shouldBeGreaterThan(10);
Json Matchers
beJson
This matcher checks if the return value is a valid json string, (*16)
$this->method()->shouldBeJson();
haveJsonKey
This matcher checks if the returned json string contains a json key., (*17)
$this->method()->shouldHaveJsonKey('key');
To match against subkey you can use the dot notation.
For example let's assume the following json structure, (*18)
{
"key": {
"subkey": "value"
}
}
The key for this check is 'key.subkey', (*19)
$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., (*20)
$this->method()->shouldHaveJsonKeyWithValue('key.subkey', 'value');
License
Apache License 2.0 Please see LICENSE for more information., (*21)