loophp/phpunit-iterable-assertions

Iterable assertions for PHPUnit

Maintainers

👁 drupol

Package info

github.com/loophp/phpunit-iterable-assertions

pkg:composer/loophp/phpunit-iterable-assertions

Fund package maintenance!

drupol

Statistics

Installs: 15 213

Dependents: 2

Suggesters: 0

Stars: 2

Open Issues: 12

1.0.4 2023-11-25 08:53 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 5a32e9239a4358916b83782c8ed0e5bca7e717a6

phpunit


README

👁 Latest Stable Version
👁 GitHub stars
👁 Total Downloads
👁 GitHub Workflow Status
👁 Type Coverage
👁 License
👁 Donate!

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.