rest-certain / hamcrest-phpunit
Hamcrest matchers that work natively with PHPUnit
Requires
- php: ~8.3.0 || ~8.4.0
- phpunit/phpunit: ^12.0
Requires (Dev)
- captainhook/plugin-composer: ^5.3
- ergebnis/composer-normalize: ^2.47
- phly/keep-a-changelog: ^2.13
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-mockery: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- ramsey/coding-standard: ^2.3
- ramsey/composer-repl: ^1.5
- ramsey/conventional-commits: ^1.6
- roave/security-advisories: dev-latest
README
Hamcrest matchers that work natively with PHPUnit
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.