Additional functionality for PHPUnit (such as assertions)
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
tests
.gitattributes
.gitignore
.travis.yml
CHANGELOG.rst
LICENSE
README.rst
composer.json
phpunit.xml.dist

README.rst

PHPUnit extras

Additional functionality for PHPUnit (such as assertions).

https://travis-ci.com/kuria/phpunit-extras.svg?branch=master

Requirements

  • PHP 7.1+

Usage

AssertionTrait

This trait exposes additional assertion methods to your test case.

<?php

namespace Acme;

use Kuria\PhpUnitExtras\Traits\AssertionTrait;
use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    use AssertionTrait;

    function testFooBar()
    {
        $this->assertEqualIterable([1, 2, 3], new \ArrayObject([1, 2, 3]));
    }
}

assertLooselyIdentical($expected, $actual, $canonicalizeKeys = false)

Assert that two values have the same type and value, but consider different instances of the same class identical as long as they have identical properties.

If $canonicalizeKeys = TRUE, then array key order is ignored.

assertSameIterable(iterable $expected, $actual)

Assert that two iterables contain the same values and types in the same order

Types are compared the same way as with the === operator.

assertLooselyIdenticalIterable(iterable $expected, $actual, $canonicalizeKeys = false)

Assert that two iterables contain the same values and types in the same order, but consider different instances of the same class identical as long as they have identical properties.

If $canonicalizeKeys = TRUE, then array key order is ignored.

assertEqualIterable(iterable $expected, $actual)

Assert that two iterables contain equal values in any order

Types are compared the same way as with the == operator.

looselyIdenticalTo($value, $canonicalizeKeys = false)

Create the IsLooselyIdentical constraint. See assertLooselyIdentical().

identicalIterable(iterable $expected)

Create the IsIdenticalIterable constraint. See assertSameIterable().

looselyIdenticalIterable(iterable $expected, $canonicalizeKeys = false)

Create the IsLooselyIdenticalIterable constraint. See assertLooselyIdenticalIterable().

equalIterable(iterable $expected)

Create the IsEqualIterable constraint. See assertEqualIterable().

ClockTrait

Mock current time in tests.

Only affects code that uses the kuria/clock component.

<?php

namespace Acme;

use Kuria\PhpUnitExtras\Traits\ClockTrait;
use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    use ClockTrait;

    function testFooBar()
    {
        $this->atTime(1535904500, function () {
            // some code that uses Kuria/Clock/Clock
        });
    }
}