rest-certain/hamcrest-phpunit

Hamcrest matchers that work natively with PHPUnit

0.1.0 2025-05-06 03:04 UTC

This package is auto-updated.

Last update: 2025-05-06 03:23:09 UTC


README

Hamcrest matchers that work natively with PHPUnit

Source Code Download Package PHP Programming Language Read License Build Status Codecov Code Coverage

About

This library provides Hamcrest matchers that return PHPUnit Constraint instances, allowing the matchers to be used anywhere a PHPUnit constraint is allowed.

This is not an official Hamcrest project and has no affiliation with hamcrest.org. The matchers this library provides are not true Hamcrest matchers in that they do not return Hamcrest Matcher instances, as defined by the Hamcrest project. Instead, the functions in this library return Constraint instances, for use with PHPUnit.

This project adheres to a code of conduct. By participating in this project and its community, you are expected to uphold this code.

Tip

Check out the official PHP port of Hamcrest Matchers: hamcrest/hamcrest-php!

Installation

Install this package as a development dependency using Composer.

composer require --dev rest-certain/hamcrest-phpunit

Usage

This library provides all Hamcrest matchers as static methods on the RestCertain\Hamcrest\Matchers class and also as functions in the RestCertain\Hamcrest namespace. These methods and functions may be used within the context of PHPUnit tests.

use PHPUnit\Framework\TestCase;

use function RestCertain\Hamcrest\assertThat;
use function RestCertain\Hamcrest\both;
use function RestCertain\Hamcrest\containsStringIgnoringCase;
use function RestCertain\Hamcrest\isA;
use function RestCertain\Hamcrest\startsWithIgnoringCase;

class ExampleTest extends TestCase
{
    public function testExample(): void
    {
        assertThat(
            'The quick brown fox jumps over the lazy dog',
            both(isA('string'))
                ->and(startsWithIgnoringCase('the'))
                ->and(containsStringIgnoringCase('FOX')),
        );
    }
}

Contributing

Contributions are welcome! To contribute, please familiarize yourself with CONTRIBUTING.md.

Coordinated Disclosure

Keeping user information safe and secure is a top priority, and we welcome the contribution of external security researchers. If you believe you've found a security issue in software that is maintained in this repository, please read SECURITY.md for instructions on submitting a vulnerability report.

Copyright and License

rest-certain/hamcrest-phpunit is copyright © REST Certain Contributors and licensed for use under the terms of the GNU Lesser General Public License (LGPL-3.0-or-later) as published by the Free Software Foundation. Please see COPYING.LESSER, COPYING, and NOTICE for more information.