loophp / phpunit-iterable-assertions
Iterable assertions for PHPUnit
Fund package maintenance!
drupol
Installs: 12 908
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 2
Requires
- php: >= 8.1
- loophp/iterators: ^2 || ^3
Requires (Dev)
- ext-pcov: *
- drupol/php-conventions: ^5
- infection/infection: ^0.27
- phpstan/phpstan-strict-rules: ^1.0
- phpunit/php-code-coverage: ^10
- phpunit/phpunit: ^10
README
PHPUnit Iterable Assertions
Description
Provide new assertions for your tests using PHPUnit.
Features
assertIdenticalIterable
assertNotIdenticalIterable
Installation
composer require --dev loophp/phpunit-iterable-assertions
Usage
<?php namespace tests; use loophp\PhpUnitIterableAssertions\Traits\IterableAssertions; use PHPUnit\Framework\TestCase; final class MyTest extends TestCase { use IterableAssertions; $expected = range('a', 'c'); $actual = ['a' => 'a', 'b' => 'b', 'c' => 'c']; // This will fail: The keys are different. self::assertIdenticalIterable( $expected, $actual ); // This will succeed: Both iterables are different. self::assertNotIdenticalIterable( $expected, $actual ); }
Documentation
Code quality, tests, benchmarks
Every time changes are introduced into the library, Github runs the tests.
The library has tests written with PHPunit. Feel free to check them out in
the tests
directory.
Before each commit, some inspections are executed with GrumPHP; run
composer grumphp
to check manually.
The quality of the tests is tested with Infection a PHP Mutation testing
framework - run composer infection
to try it.
Static analyzers are also controlling the code. PHPStan and PSalm are enabled to their maximum level.
Contributing
Feel free to contribute by sending pull requests. We are a usually very responsive team and we will help you going through your pull request from the beginning to the end.
For some reasons, if you can't contribute to the code and willing to help, sponsoring is a good, sound and safe way to show us some gratitude for the hours we invested in this package.
Sponsor me on Github and/or any of [the contributors][6].
Changelog
See CHANGELOG.md for a changelog based on git commits.
For more detailed changelogs, please check the release changelogs.