usox / phpunit-consecutive-params

A usable replacement for PHPUnit withConsecutive after it got deprecated without a replacement.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

PHPUnit Consecutive Parameters

After PHPUnit has removed the possibility to use withConsecutive, which was used by thousand of UnitTests, developers need a replacement which is not offered in a neat way at the moment.

Until this problem is solved directly in PHPUnit, this library offers a simple solution to use a replacement of withConsecutive again. The original solution posted here.

Installation

$ composer require --dev seec/phpunit-consecutive-params

Usage

<?php

declare(strict_types=1);

namespace Your\Namespace\For\Tests;

use SEEC\PhpUnit\Helper\ConsecutiveParams;

final class TestRunnerContextTest extends TestCase
{
    use ConsecutiveParams;
    ...

    public function test_it_can_use_consecutive_replacement(): void
    {
        $mock = $this->createMock(\stdClass::class);
        $mock->expects($this->exactly(3))
            ->method('foo')
            ->with(...$this->consecutiveParams(
                ['a', 'b'],
                ['c', 'd'],
                ['e', 'f']
            ));
    }

Another example for automatic replacement in correctly formatted code:

->withConsecutive(
    ['a', 'b'],
    ['c', 'd'],
    ['e', 'f']
)

becomes

->with(...$this->withConsecutive(
    ['a', 'b'],
    ['c', 'd'],
    ['e', 'f']
))

About

A usable replacement for PHPUnit withConsecutive after it got deprecated without a replacement.

License:GNU General Public License v3.0


Languages

Language:PHP 95.8%Language:Dockerfile 4.2%