https://github.com/rest-certain/hamcrest-phpunit
Hamcrest matchers that work natively with PHPUnit
https://github.com/rest-certain/hamcrest-phpunit
hamcrest hamcrest-matchers php phpunit testing
Last synced: 3 days ago
JSON representation
Hamcrest matchers that work natively with PHPUnit
- Host: GitHub
- URL: https://github.com/rest-certain/hamcrest-phpunit
- Owner: rest-certain
- License: lgpl-3.0
- Created: 2025-05-06T02:07:24.000Z (4 days ago)
- Default Branch: main
- Last Pushed: 2025-05-06T03:23:06.000Z (4 days ago)
- Last Synced: 2025-05-06T03:33:25.887Z (4 days ago)
- Topics: hamcrest, hamcrest-matchers, php, phpunit, testing
- Language: PHP
- Homepage:
- Size: 66.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: COPYING
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
rest-certain/hamcrest-phpunit
Hamcrest matchers that work natively with PHPUnit## About
This library provides [Hamcrest](https://hamcrest.org) matchers that return
[PHPUnit](https://phpunit.de) `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](https://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](https://hamcrest.org/JavaHamcrest/tutorial#writing-custom-matchers).
Instead, the functions in this library return `Constraint` instances, for use
with PHPUnit.This project adheres to a [code of conduct](CODE_OF_CONDUCT.md). 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](https://packagist.org/packages/hamcrest/hamcrest-php)!## Installation
Install this package as a development dependency using [Composer](https://getcomposer.org).
``` bash
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.``` php
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](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](SECURITY.md) for instructions on submitting a vulnerability report.## Copyright and License
rest-certain/hamcrest-phpunit is copyright © [REST Certain Contributors](https://rest-certain.dev)
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.LESSER), [COPYING](COPYING), and [NOTICE](NOTICE) for
more information.